gpt4 book ai didi

c++ - 如果没有 libRcpp.so 文件,我如何链接 Rcpp?

转载 作者:太空宇宙 更新时间:2023-11-04 10:34:38 25 4
gpt4 key购买 nike

尝试编译我的 C++ 程序时,我正在链接我的 R 文件,但 Rcpp 没有 libRcpp.so 文件。

这是 R 代码(我省略了 C++):

#include <R.h>
#include <Rcpp.h>
#include <RInside.h>

**** some c++ code*****

RInside R(argc, argv);

string cmd = "tmpf <- tempfile('nums');"
"png(tmpf);"
"counts <- table(a,b,c,d,e);"
"barplot(counts, main='My Plot', xlab='Letters');"
"dev.off();"
"tmpf";

string tmpfile = R.parseEval(cmd);

cout << "Using plot " << tmpfile << endl;
unlink(tmpfile.c_str());

然后我像这样用 g++ 编译:

g++ -I/home/robert/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/include  
-I/home/robert/R/x86_64-pc-linux-gnu-library/3.2/RInside/include
-I/usr/share/R/include -L/usr/lib/R/lib -lR
-L/home/robert/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/libs -lRcpp
-L/home/robert/R/x86_64-pc-linux-gnu-library/3.2/RInside/lib -lRInside
Frequency-Analyzer.cpp

错误如下:

/usr/bin/ld: cannot find -lRcpp
collect2: error: ld returned 1 exit status

这是因为 -L/home/robert/R/x86_64-pc-linux-gnu-library/3.2/Rcpp/libs不会导致“libRcpp.so”文件。但是,我的目录中没有 lib 文件,因为它不再支持链接。那我怎么可能用 RInside 编译呢??

最佳答案

您似乎正在使用类似于 rinside_sample15.cpp 的东西.我可以使用提供并经过测试的 Makefile 轻松构建:

edd@don:~/git/rinside/inst/examples/standard(master)$ make -f GNUmakefile 
rinside_sample15
ccache g++ -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-strong -Wformat -Werror=format-security \
-Wdate-time -D_FORTIFY_SOURCE=2 -g -O3 -Wall -pipe -Wno-unused \
-pedantic -Wall rinside_sample15.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_sample15
edd@don:~/git/rinside/inst/examples/standard(master)$
edd@don:~/git/rinside/inst/examples/standard(master)$ ./rinside_sample15
Can now use plot in /tmp/xyplot56466f672e73.png
edd@don:~/git/rinside/inst/examples/standard(master)$

路径因您而异,您可能没有ccache,但它应该仍然有效——或者您的 R 安装有问题。

关于c++ - 如果没有 libRcpp.so 文件,我如何链接 Rcpp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38189554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com