如何在代码中使用 Rcpp::Blocks IDE

How to use Rcpp in Code::Blocks IDE

本文关键字:Rcpp Blocks IDE 代码      更新时间:2023-10-16

我正在尝试在Code::Blocks IDE中使用Rcpp包,但是当我尝试使用#include<Rcpp.h>编译脚本时,出现错误,指出文件或存储库不存在。

我安装了库 Rcpp,因此在 RStudio 中我可以运行.cpp文件。

问题是我想在 Code::Blocks IDE 的 c++ 脚本中使用 Rcpp 类。

我该怎么做?

您需要配置 IDE 的构建,以便可以:

  • 来自 R 和 Rcpp 的访问标头
  • 链接到来自 R 和 RCPP 的图书馆

您可以使用sourceCpp( , verbose = TRUE)来获得一些示例:

例如,sourceCpp此文件时:

#include <Rcpp.h>
using namespace Rcpp ;
// [[Rcpp::export]]
int zero(){
  return 0 ;
}

在我的机器上,我得到这个:

// ... lots of stuff irrelevant here ...
clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG   -I"/Library/Frameworks/R.framework/Versions/3.4/Resources/library/Rcpp/include" -I"/Users/romain/Desktop" -I/usr/local/include   -fPIC  -O3 -c test.cpp -o test.o
clang++ -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o sourceCpp_28.so test.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation

您可以从R CMD config获得其中的一些,即

$ R CMD config DYLIB_LDFLAGS
-dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -fopenmp

在互联网上长时间搜索并向我所在的公司的 c ++ 程序员寻求帮助后,我设法找到了解决问题的可行解决方案,如果它对某人有用,我将接下来解释它:

解决方案非常简单,而不是尝试编译和执行一个独立的脚本,关键是在 Code::Blocks 中创建一个项目并在其中声明脚本。之后,只需在文件依赖项中声明项目内的 Rcpp 和 R 库,以及动态库。这使得运行#include<Rcpp.h>并因此可以使用它提供给 R 程序员的所有风险