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