我的任务是用C++重写R函数来加速while循环.所有R代码都在Rcpp和Armadillo的帮助下重写,除了.Fortran().我尝试首先使用Rinside,它的工作速度非常慢,正如Dirk所指出的那样.(数据通过R  - > C++  - > R  - > Fortran是昂贵的)
由于我不想用C++重写Fortran代码,反之亦然,通过将C++直接链接到Fortran来加速程序看起来很自然:R - > C++ - > Fortran.
// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>
using namespace Rcpp;
extern "C"{
   List f_(int *n,NumericMatrix a, NumericVector c, double* eps);
}
问题是我可以将C++与Fortran集成并将R与C++集成,但我不能让这三个东西一起工作!
我尝试在Linux中编译C++,但它无法找到RcppArmadillo.h并且namespace Rcpp:
 error: RcppArmadillo.h: No such file or directory
 error: 'Rcpp' is not a namespace-name
当我sourceCpp("test.cpp")直接打电话给R时,控制台会显示:
test.o:test.cpp:(.text+0x20b2): undefined reference to `f_'
collect2: ld returned 1 exit status
Error in sourceCpp("test.cpp") : Error occurred building shared library. …