Rcpp Makevars相关警告

时间:2018-08-11 12:35:48

标签: gnu-make rcpp r-package compiler-flags

我是使用Rcpp进行一些核心计算的一些R软件包的负责人。希望尝试Rcpp 0.12.18 Rbloggers

中所述的Rcpp软件包的新功能

为此,我执行了以下操作:

  1. 我在我的 scr 文件夹中创建了一个Makevars和Makevars.win,它们都包含行CPPFLAGS += -DRCPP_USE_UNWIND_PROTECT
  2. 我在 DESCRIPTION 文件中添加了SystemRequirements:GNU make条目。

Btw引发了一些使我受伤的问题,这会使我的包裹在CRAN上被拒绝:

  1. 在编译我的软件包时出现以下警告消息:
    • 正在检查Makevars中的编译标志...警告覆盖用户/站点设置的变量:CPPFLAGS:-o / dev / null -DRCPP_USE_UNWIND_PROTECT
  2. 注意:GNU make是系统要求

我想知道是否有可能重写Makevars来删除警告,以及可能的Gnu make要求

预先感谢您的关注

1 个答案:

答案 0 :(得分:2)

您要使用PKG_CPPFLAGS(或PKG_CXXFLAGS),因为这是每个包装的变体。您更改的是系统范围的版本,因此出现警告。

《 Writing R Extensions》手册中一如既往地提供了更多详细信息,否则,许多现有示例程序包(全部在CRAN上,可在GitHub上浏览)也可以提供帮助。

例如,这是RcppExamples包中的一键设置用例:

PKG_CXXFLAGS = -DRCPP_NEW_DATE_DATETIME_VECTORS

(严格来说,由于“新的” Date和Datetime向量类在不久前成为默认类),因此不再需要。

此外,如果您使用这种形式,则不需要不需要+=,并且不需要在GNU make上进行声明-另一个胜利。