运行RInside示例触发致命错误:无法初始化JIT,原因何在?
解决RInside示例在Windows R-4.0.3下的"unable to initialize the JIT"错误
问题原因
R 4.0.x在Windows平台的默认JIT(即时编译)配置,与RInside的嵌入式R环境存在兼容性问题,导致程序启动时无法初始化JIT组件;而Ubuntu环境的R 4.2.2对嵌入式场景的JIT支持做了优化,因此未出现该问题。
解决方案
临时禁用JIT(通过环境变量)
在命令提示符中执行以下命令后再运行可执行文件:set R_ENABLE_JIT=0 rinside_sample0.exe也可以创建批处理文件(如
run_sample.bat)封装上述命令,双击即可运行。永久修改R配置
在用户目录(C:\Users\[你的用户名])下新建或编辑.Rprofile文件,添加以下代码:compiler::enableJIT(0)该配置会在每次启动R(包括嵌入式调用)时禁用JIT编译。
修改示例代码并重新编译
打开rinside_sample0.cpp,在main函数开头插入以下代码,强制在初始化R环境后禁用JIT:#include <Rcpp.h> int main(int argc, char *argv[]) { Rcpp::Function enableJIT("enableJIT"); enableJIT(0); // 原有示例代码... RInside R(argc, argv); // ... }保存后重新编译:
make -f Makefile.win rinside_sample0
内容的提问来源于stack exchange,提问作者Egus
相关产品推荐
相关产品推荐

