c++ - <RInside.h> 的 fatal error

标签 c++ r rcpp rinside

我正在通过终端运行这个例子。但是得到了fatal error: RInside.h: No such file or directory该行错误,#include<RInside.h> . 它是从 C++ 到 R 的接口(interface)。我在 R 中有 RInside 包。 我的代码:

#include<iostream>
#include<RInside.h>
using namespace std;
int main(){
    int a=12;
    cout<<a<<endl;
    return 0;  
}

#include<Rcpp.h> 发生同样的错误标题。

#include <Rcpp.h>

using namespace Rcpp;

// [[Rcpp::export]]
NumericVector callFunction(NumericVector x, Function f) {
    NumericVector res = f(x);
    return res;
}

包 RInside 版本 0.2.14

打包 Rcpp 版本 0.12.17

最佳答案

examples 文件夹中随 RInside 一起提供的 GNUmakefile 包括如下内容:

## comment this out if you need a different version of R, 
## and set set R_HOME accordingly as an environment variable
R_HOME :=       $(shell R RHOME)

[...]
## include headers and libraries for R 
RCPPFLAGS :=        $(shell $(R_HOME)/bin/R CMD config --cppflags)
RLDFLAGS :=         $(shell $(R_HOME)/bin/R CMD config --ldflags)
RBLAS :=        $(shell $(R_HOME)/bin/R CMD config BLAS_LIBS)
RLAPACK :=      $(shell $(R_HOME)/bin/R CMD config LAPACK_LIBS)

## if you need to set an rpath to R itself, also uncomment
#RRPATH :=      -Wl,-rpath,$(R_HOME)/lib

## include headers and libraries for Rcpp interface classes
## note that RCPPLIBS will be empty with Rcpp (>= 0.11.0) and can be omitted
RCPPINCL :=         $(shell echo 'Rcpp:::CxxFlags()' | $(R_HOME)/bin/R --vanilla --slave)
RCPPLIBS :=         $(shell echo 'Rcpp:::LdFlags()'  | $(R_HOME)/bin/R --vanilla --slave)


## include headers and libraries for RInside embedding classes
RINSIDEINCL :=      $(shell echo 'RInside:::CxxFlags()' | $(R_HOME)/bin/R --vanilla --slave)
RINSIDELIBS :=      $(shell echo 'RInside:::LdFlags()'  | $(R_HOME)/bin/R --vanilla --slave)

## compiler etc settings used in default make rules
CXX :=          $(shell $(R_HOME)/bin/R CMD config CXX)
CPPFLAGS :=         -Wall $(shell $(R_HOME)/bin/R CMD config CPPFLAGS)
CXXFLAGS :=         $(RCPPFLAGS) $(RCPPINCL) $(RINSIDEINCL) $(shell $(R_HOME)/bin/R CMD config CXXFLAGS)
LDLIBS :=       $(RLDFLAGS) $(RRPATH) $(RBLAS) $(RLAPACK) $(RCPPLIBS) $(RINSIDELIBS)

如果您使用 GNU make,您可能可以按字面意思使用它。否则,您将不得不根据您的构建环境调整它。请查看提供的示例以获取更多详细信息。

关于c++ - <RInside.h> 的 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51056252/

相关文章:

c++ - vector 迭代编译成非常不同的指令

r - 等效于 Rcpp 的 lineprof

c++ - QT - 如何通过按下按钮从子部件返回到父部件

c++ - C++ 相当于 C 格式字符串

c++ - Pthread 段错误

r - 如何在R中分割字符同时保留括号内的内容?

r - R中的嵌套foreach循环,其中内部循环返回一个矩阵

R 提高功能的性能

c++ - 将 C++ 中的 Rcpp 与 bcc 编译器集成

c++ - 将 R 函数作为参数传递给 RCpp 函数