变量'中的不可移植标志;包装单元CXXFLAGS和x27; 我用RCPP向R包中的一些包添加了一些C++代码,以帮助进行一些激烈的计算。sourceCpp版本运行良好。但是,在将同一个函数实际添加到包中之后,它的速度慢了很多倍。经过一些调查,很明显这是一个编译器优化问题。长话短说,我正在尝试将Makevars和Makevars.win文件添加到包目录中的/src,以便在可用时优化代码

变量'中的不可移植标志;包装单元CXXFLAGS和x27; 我用RCPP向R包中的一些包添加了一些C++代码,以帮助进行一些激烈的计算。sourceCpp版本运行良好。但是,在将同一个函数实际添加到包中之后,它的速度慢了很多倍。经过一些调查,很明显这是一个编译器优化问题。长话短说,我正在尝试将Makevars和Makevars.win文件添加到包目录中的/src,以便在可用时优化代码,r,makefile,rcpp,R,Makefile,Rcpp,我想将更新后的软件包提交给CRAN,因此我需要使其通过适当的检查。目前,我收到了警告:变量'PKG_cxflags'中的不可移植标志 我已经做了各种尝试来纠正这个问题。e、 g PKG_CXXFLAGS = -O3 (最后一次尝试是从这里开始的:,它应该可以解决问题。) 我仍然得到警告。我的问题是:是否有一种简单的、与平台无关的方法,可以通过/src中的Makevars或Makevars.win文件来鼓励编译器优化? 因为我没有见过任何这种类型的Makevars,我猜答案是否定的。如果有

我想将更新后的软件包提交给CRAN,因此我需要使其通过适当的检查。目前,我收到了警告:
变量'PKG_cxflags'中的不可移植标志

我已经做了各种尝试来纠正这个问题。e、 g

   PKG_CXXFLAGS = -O3
(最后一次尝试是从这里开始的:,它应该可以解决问题。)

我仍然得到警告。我的问题是:是否有一种简单的、与平台无关的方法,可以通过
/src
中的
Makevars
Makevars.win
文件来鼓励编译器优化?


因为我没有见过任何这种类型的
Makevars
,我猜答案是否定的。如果有一种方法使用
autoconf
,我还没有看到一个我理解的例子。

这是一个我们必须视为给定的CRAN规则。一般建议将其添加到您的个人
~/.R/Makevars
中。我认为通过
autoconf
打开/关闭它并不是被禁止的,只是。。。微小难弄的(刚刚给一个朋友发了电子邮件,他的CRAN软件包不会安装在我的盒子上,除非我添加了编译器标志。他正在尝试
autoconf
舞蹈,这是我最近的“很难…”示例。)@Dirk感谢您的回复。我想可能是这样的。
   PKG_CXXFLAGS = -g -O -mtune=native
   PKG_CXXFLAGS = -mtune=native
   PKG_CXXFLAGS = -g
   PKG_CXXFLAGS = -g -O3 -Wall -pedantic -mtune=native -frtti  -Wno-ignored-attributes -Wno-deprecated-declarations -D_FORTIFY_SOURCE=2 $(LTO)