如何在代码中使用 Rcpp::Blocks IDE
How to use Rcpp in Code::Blocks IDE
我正在尝试在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 程序员的所有风险
相关文章:
- 如何使用Rcpp将R函数转换为C++函数
- rcpp函数中的清理时间很长
- 将 C++ 类与 Rcpp 一起使用,从 C 或 R 修改它
- 从 Rcpp Catch 测试中获取有关"inst/extdata"的数据
- 犰狳的 print() 方法和 cout 在从 Rcpp 调用时顺序不一致
- std::mt19937 in Rcpp
- Rcpp并行无匹配函数,用于调用"转换"
- 通过 RCPP 中的索引求和
- 混合 Rcpp 模块和 Rcpp::export
- 有没有办法在RCPP程序无法正常工作时阻止RGui崩溃?
- 用于子集字符串的 Rcpp 函数
- 通过 Rcpp 和 bit64 R 包将最大的int64_t变量值从 C++ 传递到 R
- 在模板化的 Rcpp 函数中调用另一个 cpp 函数
- Rcpp 函数在打包时使 RStudio 崩溃
- 如何更改输出的位置或光标在输出处,以便在"Code Blocks"中C++
- 在数据帧上应用 Rcpp
- 在 Rcpp 中的字符串类型之间转换时出错
- 使用 Rcpp 加速替换迭代算法中的列表和向量元素是否合法?
- 使用 Rcpp 公开将指向对象的指针作为参数的构造函数
- 如何在代码中使用 Rcpp::Blocks IDE