0
调用C++函数时,我有一个C++函数称为“file1.cpp”,看起来像:致命错误特林来自R
#include <cmath>
#include <stdio.h>
#include <RcppArmadillo.h>
#include <boost/math/special_functions/gamma.hpp>
#include <mpi.h>
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
using namespace std;
using namespace arma;
using namespace boost::math;
const double PIVAL = std::acos(0.0)*2;
class function1
{
...
}
extern "C"
void functin2
{
...
}
我想从R函数调用它。为了做到这一点,我需要先编译它获得“file1.so”,我可以用它后来在R命令:
dyn.load("file1.so.so")
所以,Ubuntu的16.10终端我写道:
$ R CMD SHLIB file1.cpp -O2 -larmadillo -llapack -lblas
当我按下进入我会得到follwing错误消息:
g++ -I/usr/share/R/include -DNDEBUG -fpic -g -O2 -fdebug-prefix-map=/build/r-base-rAT5Oi/r-base-3.3.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c file1.cpp -o file1.o
file1.cpp:12:81: fatal error: RcppArmadillo.h: No such file or directory
#include <RcppArmadillo.h>
我无法找到该错误的解决方案。所以,我试图从Rstudio内部调用C++函数。我写的follwing命令:
library(Rcpp)
library(RcppArmadillo)
sourceCpp("file1.cpp")
function2()
当执行它,我会得到这个错误:
file1.cpp:11:81: fatal error: RcppArmadillo.h: No such file or directory
任何人有关于如何解决它的想法?提前致谢。
最好的问候,
它的作品很神奇。谢谢德克。我花了很多天的时间来弄清楚。但是,我会得到一个新的错误:致命错误:boost/math/special_functions/gamma.hpp:没有这样的文件或目录 #include –
emadalamoudi
阅读BH包和研究使用它的包。可能会像添加单个LinkingTo一样简单。而且,如果我可以的话,**也在Rcpp图库中清楚地解释过**。不要试图重新发明每一个轮子。 –
我会德克,非常感谢您的帮助。 – emadalamoudi