【发布时间】:2017-03-26 02:49:41
【问题描述】:
我通过r-cran-rcpp 安装了Rcpp,然后我使用dpkg -L r-cran-rcpp 找出来
ls /usr/lib/R/site-library/Rcpp/libs/
Rcpp.so
但是当我使用ld -L /usr/lib/R/site-library/Rcpp/libs -l Rcpp ld 时抱怨它找不到 Rcpp,知道发生了什么吗?
事实上,我正在使用无缝 R 和 C++ 的第一个示例 与 Rcpp 集成,但以下代码抱怨找不到 lrcpp
首先是fib.cpp中的cpp代码
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
int fibonacci(const int x) {
if (x == 0) return(0);
if (x == 1) return(1);
return (fibonacci(x - 1)) + fibonacci(x - 2);
}
extern "C" SEXP fibWrapper(SEXP xs) {
int x = Rcpp::as<int>(xs);
int fib = fibonacci(x);
return (Rcpp::wrap(fib));
}
~然后我尝试编译它们
PKG_CXXFLAGS="-I/home/sunxd/R/x86_64-pc-linux-gnu-library/3.3/Rcpp/include" \
PKG_LIBS="-L/home/sunxd/R/x86_64-pc-linux-gnu-library/3.3/Rcpp/libs -lRcpp" \
R CMD SHLIB fib.cpp
或
PKG_CXXFLAGS="-I/usr/lib/R/site-library/Rcpp/include" \
PKG_LIBS="-L/usr/lib/R/site-library/Rcpp/libs -lRcpp" \
R CMD SHLIB fib.cpp
【问题讨论】:
-
请please please至少尝试阅读一些文档和现有示例。我字面上写了一本关于它的书,有一个充满演示文稿的网站,并在这里回答了数百个问题。简而言之:你的假设是错误的。
-
嗨,Dirk,实际上我正在阅读您的书并尝试解决 fibnacci.cpp 示例,但它找不到 rcpp,请参阅更新
-
工作中的例子都有效。根据您的(有些不完整)两个问题,我猜测您正在尝试编译可执行文件。 Rcpp 是一个用于从 R 调用的扩展。
-
打开
verbose,您可以研究每个工作版本,看看它们有何不同。 -
好的,更新有帮助。现在我们至少可以尝试阅读您尝试过的内容。