[Rcpp-devel] #include gretl libraries in Rcpp

jean.p at hushmail.com jean.p at hushmail.com
Thu Dec 20 01:08:47 CET 2012


excellent ! this worked perfectlythanks a lot

On Thursday, December 20, 2012 at 1:04 AM, "Romain Francois" 
wrote:Welcome in macro hell.

Try this:

#include 
#include 

#undef PARENT
#include 

So one of these headers is defining a macro "PARENT" that conflicts
with 
the name PARENT used in any.h. This should take care of it.

Romain

Le 20/12/12 00:56, jean.p at hushmail.com a écrit :
> thanks for the quick reply!
>
> first option did not change anything and second option seems to
create
> new errors linked to Rcpp:
>
> jean at desktop:~/Documents/code experiments/gretl$ make
>
> PKG_CPPFLAGS="-I/usr/share/R/include
-I/usr/lib/R/library/Rcpp/include
> -I/usr/include/libxml2 -I/usr/include/glib-2.0
> -I/usr/lib/glib-2.0/include  " PKG_LIBS="-L/usr/lib64/R/lib -lR
> -L/usr/lib/R/library/Rcpp/lib -lRcpp
> -Wl,-rpath,/usr/lib/R/library/Rcpp/lib -fopenmp -lgretl-1.0 -lxml2
> -lfftw3 -lm -lglib-2.0  " R CMD SHLIB test2.cpp
>
> make[1]: Entering directory `/home/jean/Documents/code
experiments/gretl'
>
> g++ -I/usr/share/R/include -DNDEBUG -I/usr/share/R/include
> -I/usr/lib/R/library/Rcpp/include -I/usr/include/libxml2
> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include       -fpic  -O3
> -pipe  -g  -c test2.cpp -o test2.o
> In file included from
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/functions.h:34,
>                   from
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/sugar.h:30,
>                   from /usr/lib/R/library/Rcpp/include/Rcpp.h:68,
>                   from test2.cpp:4:
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/any.h:33:36:
error:
> macro "PARENT" requires 2 arguments, but only 1 given
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/any.h:62:36:
error:
> macro "PARENT" requires 2 arguments, but only 1 given
> In file included from
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/functions.h:35,
>                   from
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/sugar.h:30,
>                   from /usr/lib/R/library/Rcpp/include/Rcpp.h:68,
>                   from test2.cpp:4:
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/all.h:33:36:
error:
> macro "PARENT" requires 2 arguments, but only 1 given
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/all.h:64:36:
error:
> macro "PARENT" requires 2 arguments, but only 1 given
> In file included from
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/functions.h:34,
>                   from
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/sugar.h:30,
>                   from /usr/lib/R/library/Rcpp/include/Rcpp.h:68,
>                   from test2.cpp:4:
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/any.h: In
> constructor ‘Rcpp::sugar::Any::Any(const Rcpp::VectorBase LHS_NA,
LHS_T>&)’:
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/any.h:33:
error:
> expected ‘(’ before ‘,’ token
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/any.h: In
> constructor ‘Rcpp::sugar::Any::Any(const Rcpp::VectorBase false,
LHS_T>&)’:
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/any.h:62:
error:
> expected ‘(’ before ‘,’ token
> In file included from
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/functions.h:35,
>                   from
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/sugar.h:30,
>                   from /usr/lib/R/library/Rcpp/include/Rcpp.h:68,
>                   from test2.cpp:4:
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/all.h: In
> constructor ‘Rcpp::sugar::All::All(const Rcpp::VectorBase LHS_NA,
LHS_T>&)’:
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/all.h:33:
error:
> expected ‘(’ before ‘,’ token
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/all.h: In
> constructor ‘Rcpp::sugar::All::All(const Rcpp::VectorBase false,
LHS_T>&)’:
> /usr/lib/R/library/Rcpp/include/Rcpp/sugar/functions/all.h:64:
error:
> expected ‘(’ before ‘,’ token
>
>
> On Thursday, December 20, 2012 at 12:48 AM, "Romain Francois"
>  wrote:
>
>     The extern "C" looks suspicious. What happens if you don't
include it ?
>
>     e.g.
>
>     #include 
>     #include 
>     #include 
>
>     or perhaps:
>
>     #include 
>     #include 
>     #include 
>
>     Romain
>
>     Le 20/12/12 00:39, jean.p at hushmail.com a écrit :
>     > Hi,
>     >
>     > I am having trouble getting Rcpp to compile c++ files
including headers
>     > from the gretl statistical libraries
>     >
>     > for instance, here are the first lines of a test cpp file I
have been
>     > trying to compile:
>     >
>     > #include 
>     >
>     > extern "C" {
>     > #include 
>     > #include 
>     > }
>     >
>     > now, here is the result of a make command in linux (debian),
with the
>     > error messages focussing on the lines of code where the
#include are
>     > located:
>     >
>     > jean at desktop:~/Documents/code experiments/gretl$ make
>     >
>     > PKG_CPPFLAGS="-I/usr/share/R/include
-I/usr/lib/R/library/Rcpp/include
>     > -I/usr/include/libxml2 -I/usr/include/glib-2.0
>     > -I/usr/lib/glib-2.0/include  " PKG_LIBS="-L/usr/lib64/R/lib
-lR
>     > -L/usr/lib/R/library/Rcpp/lib -lRcpp
>     > -Wl,-rpath,/usr/lib/R/library/Rcpp/lib -fopenmp -lgretl-1.0
-lxml2
>     > -lfftw3 -lm -lglib-2.0  " R CMD SHLIB test2.cpp
>     >
>     > make[1]: Entering directory `/home/jean/Documents/code
experiments/gretl'
>     >
>     > g++ -I/usr/share/R/include -DNDEBUG -I/usr/share/R/include
>     > -I/usr/lib/R/library/Rcpp/include -I/usr/include/libxml2
>     > -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include      
-fpic  -O3
>     > -pipe  -g  -c test2.cpp -o test2.o
>     >
>     > In file included from /usr/include/gretl/libgretl.h:384,
>     >                   from test2.cpp:4:
>     > /usr/include/gretl/genmain.h:33: error: expected identifier
before
>     > numeric constant
>     > /usr/include/gretl/genmain.h:33: error: expected ‘}’
before numeric constant
>     > /usr/include/gretl/genmain.h:33: error: expected
unqualified-id before
>     > numeric constant
>     > /usr/include/gretl/genmain.h:49: error: expected constructor,
>     > destructor, or type conversion before ‘;’ token
>     > /usr/include/gretl/genmain.h:59: error: ‘R_MAX’ was not
declared in this
>     > scope
>     > test2.cpp:6: error: expected declaration before ‘}’ token
>     > make[1]: *** [test2.o] Error 1
>     > make[1]: Leaving directory `/home/jean/Documents/code
experiments/gretl'
>     > make: *** [test2.o] Error 1
>     >
>     > any guidance would be really appreciated!
>     >
>     > many thanks,
>     > jean
>     >
>     >
>     > _______________________________________________
>     > Rcpp-devel mailing list
>     > Rcpp-devel at lists.r-forge.r-project.org
>    
>https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>     >
>
>
>     --
>     Romain Francois
>     Professional R Enthusiast
>     +33(0) 6 28 91 30 30
>
>     R Graph Gallery: http://gallery.r-enthusiasts.com
>
>     blog: http://romainfrancois.blog.free.fr
>     |- http://bit.ly/RE6sYH : OOP with Rcpp modules
>     `- http://bit.ly/Thw7IK : Rcpp modules more flexible
>
-- 
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30

R Graph Gallery: http://gallery.r-enthusiasts.com

blog:            http://romainfrancois.blog.free.fr
|- http://bit.ly/RE6sYH : OOP with Rcpp modules
`- http://bit.ly/Thw7IK : Rcpp modules more flexible
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20121220/91919de8/attachment.html>


More information about the Rcpp-devel mailing list