我试图在Ubuntu上的包中的标准示例中使用RInside。安装后,我在RInside源代码中使用了make命令。
关于我的操作系统的信息: gcc版本4.8.2 (Ubuntu4.8.2-19ubuntu1),GNU 3.81,R版本3.0.2 (2013-09-25),RInside 0.2.11和Ubuntu14.04。
这是编译错误。有人能帮我吗?)
g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include -I/usr/local/lib/R/site-library/RInside/include -O3 -pipe -g -Wall rinside_module_sample0.cpp -L/usr/lib/R/lib -lR -lblas -llapack -L/usr/local/lib/R/site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/site-library/RInside/lib -o rinside_module_sample0
In file included from /usr/local/lib/R/site-library/Rcpp/include/Rcpp.h:64:0,
from /usr/local/lib/R/site-library/RInside/include/RInsideCommon.h:38,
from /usr/local/lib/R/site-library/RInside/include/RInside.h:26,
from rinside_module_sample0.cpp:7:
rinside_module_sample0.cpp: In function ‘int main(int, char**)’:
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:451:5: error: ‘Shield’ was not declared in this scope
Shield<SEXP> __load_module_call__( Rf_lang2( GET_MODULE_SYM, _rcpp_module_boot_##NAME() ); \
^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’
R["bling"] = LOAD_RCPP_MODULE(bling) ;
^
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:451:5: note: suggested alternative:
Shield<SEXP> __load_module_call__( Rf_lang2( GET_MODULE_SYM, _rcpp_module_boot_##NAME() ); \
^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’
R["bling"] = LOAD_RCPP_MODULE(bling) ;
^
In file included from /usr/local/lib/R/site-library/Rcpp/include/Rcpp/protection/protection.h:21:0,
from /usr/local/lib/R/site-library/Rcpp/include/RcppCommon.h:129,
from /usr/local/lib/R/site-library/Rcpp/include/Rcpp.h:27,
from /usr/local/lib/R/site-library/RInside/include/RInsideCommon.h:38,
from /usr/local/lib/R/site-library/RInside/include/RInside.h:26,
from rinside_module_sample0.cpp:7:
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/protection/Shield.h:29:11: note: ‘Rcpp::Shield’
class Shield{
^
In file included from /usr/local/lib/R/site-library/Rcpp/include/Rcpp.h:64:0,
from /usr/local/lib/R/site-library/RInside/include/RInsideCommon.h:38,
from /usr/local/lib/R/site-library/RInside/include/RInside.h:26,
from rinside_module_sample0.cpp:7:
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:451:16: error: expected primary-expression before ‘>’ token
Shield<SEXP> __load_module_call__( Rf_lang2( GET_MODULE_SYM, _rcpp_module_boot_##NAME() ); \
^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’
R["bling"] = LOAD_RCPP_MODULE(bling) ;
^
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:451:94: error: expected ‘)’ before ‘;’ token
Shield<SEXP> __load_module_call__( Rf_lang2( GET_MODULE_SYM, _rcpp_module_boot_##NAME() ); \
^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’
R["bling"] = LOAD_RCPP_MODULE(bling) ;
^
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:452:13: error: ‘__load_module_call__’ was not declared in this scope
Rf_eval(__load_module_call__), R_GlobalEnv );
^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’
R["bling"] = LOAD_RCPP_MODULE(bling) ;
^
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Module.h:452:48: error: expected ‘;’ before ‘)’ token
Rf_eval(__load_module_call__), R_GlobalEnv );
^
rinside_module_sample0.cpp:27:18: note: in expansion of macro ‘LOAD_RCPP_MODULE’
R["bling"] = LOAD_RCPP_MODULE(bling) ;
^
make: *** [rinside_module_sample0] Error 1发布于 2014-07-24 01:52:48
您的问题没有向展示是如何启动编译的。RInside依赖于R和Rcpp,因此使用一个中等复杂的Makefile。但如果你只是认为事情应该能顺利进行。在我的Ubuntu14.04系统上,使用中的代码,它与您从CRAN获得的包一起安装:
edd@max:~$ cd git/rinside/inst/examples/standard/
edd@max:~/git/rinside/inst/examples/standard$ make rinside_sample0
g++-4.8 -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include \
-I/usr/local/lib/R/site-library/RInside/include -g -O2 -fstack-protector \
--param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 \
-g -O3 -Wall -pipe -Wno-unused -pedantic -Wall \
rinside_sample0.cpp -Wl,--export-dynamic -fopenmp -L/usr/lib/R/lib \
-lR -lpcre -llzma -lbz2 -lz -lrt -ldl -lm -lblas -llapack \
-L/usr/local/lib/R/site-library/RInside/lib \
-lRInside -Wl,-rpath,/usr/local/lib/R/site-library/RInside/lib \
-o rinside_sample0
edd@max:~/git/rinside/inst/examples/standard$ ./rinside_sample0
Hello, world!
edd@max:~/git/rinside/inst/examples/standard$ 这是相当冗长的,因为我更改了Debian/Ubuntu包的R,以反映许多默认的硬化标志,此外,我们需要头部和库的一些事情。
但最主要的是:只需在示例目录中使用make,就可以构建所有内容。
https://stackoverflow.com/questions/24921628
复制相似问题