【发布时间】:2014-05-22 10:41:48
【问题描述】:
我正在使用 64 位 Ubuntu,并且正在尝试编写 C++。
我发现如果我使用#include <Rcpp.h>,我什至不需要调用 R 命名空间中的任何函数,而且我已经收到未触发的引用错误:
obj/x.o: In function `Rcpp::Rstreambuf<true>::xsputn(char const*, long)':
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/iostream/Rstreambuf.h:61: undefined reference to `Rprintf'
obj/x.o: In function `Rcpp::Rstreambuf<false>::xsputn(char const*, long)':
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/iostream/Rstreambuf.h:65: undefined reference to `REprintf'
obj/x.o: In function `Rcpp::Rstreambuf<true>::overflow(int)':
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/iostream/Rstreambuf.h:70: undefined reference to `Rprintf'
obj/x.o: In function `Rcpp::Rstreambuf<false>::overflow(int)':
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/iostream/Rstreambuf.h:74: undefined reference to `REprintf'
obj/x.o: In function `Rcpp::Rstreambuf<true>::sync()':
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/iostream/Rstreambuf.h:79: undefined reference to `R_FlushConsole'
obj/x.o: In function `Rcpp::Rstreambuf<false>::sync()':
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/iostream/Rstreambuf.h:83: undefined reference to `R_FlushConsole'
我已经安装了 r-base 和 r-base-dev。我通过以 root 身份运行 R 来安装 Rcpp 并执行了 install.package("Rcpp")
我使用带有-I/usr/local/lib/R/site-library/Rcpp/include的g++编译C++程序
我在这里缺少什么?感谢您的任何回复。
【问题讨论】:
-
您缺少
-l<library>(对于需要的任何库)和可能的-L<path-to-directory-containing-library> -
R 为此提供了
R CMD SHLIB。 -
@jsantander:不只是一个。他错过了整个 R 生态系统。罗曼的回答和评论解决了这个问题。
标签: c++ r g++ rcpp include-path