尝试使用Rcpp编译c 11时出现g错误

尝试使用Rcpp编译c 11时出现g错误,第1张

概述系统规格: > *** 作系统 – Mac OS X 10.6.8(雪豹) g – Macports gcc 4.8.1_2通用 > R – 2.15.3 > Rcpp – 0.10.3 当我尝试编译在R(通过Rcpp)中使用C 11的函数时,我继续收到错误 – 由于某些原因,g不会识别-std = c 11选项. 这个例子取自Rcpp帮助文件(它不包含任何特定于C11的内容,但可以显示我的问题).如果我 系统规格:

> *** 作系统 – Mac OS X 10.6.8(雪豹)
g – Macports gcc 4.8.1_2通用
> R – 2.15.3
> Rcpp – 0.10.3

当我尝试编译在R(通过Rcpp)中使用C 11的函数时,我继续收到错误 – 由于某些原因,g不会识别-std = c 11选项.

这个例子取自Rcpp帮助文件(它不包含任何特定于C11的内容,但可以显示我的问题).如果我尝试运行:

require( Rcpp )Sys.setenv( "PKG_CXXFLAGS"="-std=c++11" )cppFunction(plugins=c("cpp11"),'int useCpp11() {    int x = 10;    return x;}')

我得到:

cc1plus: error: unrecognized command line option "-std=c++11"make: *** [file61239328ae6.o] Error 1g++ -arch x86_64 -I/library/Frameworks/R.framework/Resources/include -I/library/Frameworks/R.framework/Resources/include/x86_64 -DNDEBUG  -I/usr/local/include  -I"/library/Frameworks/R.framework/Versions/2.15/Resources/library/Rcpp/include"   -std=c++11  -fPIC  -g -O2  -c file61239328ae6.cpp -o file61239328ae6.o Error in sourceCpp(code = code,env = env,rebuild = rebuild,showOutput = showOutput,:   Error 1 occurred building shared library.

同时,我可以直接从bash编译这个函数 – 如果这个代码在useCpp11.cpp文件中,那么这个运行没有任何投诉:

g++ useCpp11.cpp -std=c++11

当然,我做错了事情,但是我无法解决这个问题. gcc 4.8在bash中设置为默认编译器,Rcpp过去一直工作无故障.我怀疑我没有告诉R哪个版本的g可以使用 – 可能是这样吗?

解决方法 Kevin Ushley是绝对正确的 – 确保使用正确的编译器的最简单的方法是通过Makevars文件.在我的情况下,我补充说:
CXX = g++-4.8.1PKG_CXXFLAGS = -std=c++11

这是我一直在想的 – 以后一切都工作.如果您正在编译您的软件包,这将起作用.

总结

以上是内存溢出为你收集整理的尝试使用Rcpp编译c 11时出现g错误全部内容,希望文章能够帮你解决尝试使用Rcpp编译c 11时出现g错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1256754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存