./rcpp:没有这样的文件或目录:cpp目标文件的运行时错误

时间:2018-07-02 07:18:49

标签: c++ rcpp

我已经尝试过使用Rcpp标头使用此cpp代码。

#include <Rcpp.h>
using namespace Rcpp;

// This is a simple example of exporting a C++ function to R. You can
// source this function into an R session using the Rcpp::sourceCpp 
// function (or via the Source button on the editor toolbar). 


// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
    return x * 2;
}



/*** R
timesTwo(42)
*/

首先,我已经像g++ -I/usr/share/R/include -I/usr/lib/R/site-library/Rcpp/include -c rcpp.cpp一样进行了编译。后来我用g++ -I/usr/share/R/include -I/usr/lib/R/site-library/Rcpp/include -c rcpp.cpp -L/usr/share/R/include -L/usr/lib/R/site-library/Rcpp/include进行链接。但是两者都会创建一个目标文件。但是我需要显示输出。

  1. 为了使目标文件可执行,我使用了chmod u+x rcpp.o命令。
  2. 用于运行./rcpp 但这会产生错误。bash: ./reg: No such file or directory 但是我从同一目录本身编译代码。任何人都知道如何解决该问题。

1 个答案:

答案 0 :(得分:4)

只需重新阅读您引用的段 。它包含以下三个非常重要的行:

// This is a simple example of exporting a C++ function to R. You can
// source this function into an R session using the Rcpp::sourceCpp 
// function (or via the Source button on the editor toolbar). 

这意味着您应该在 R 中做

Rcpp::sourceCpp("theFileYouSave.cpp")

或者如果您不喜欢::,请先加载Rcpp软件包:

library(Rcpp)
sourceCpp("theFileYouSave.cpp")

或按照评论所述进行操作(如果使用RStudio),然后按“源”按钮。

没有建议直接打g++的地方。