Rcpp Makevars 相关警告

Rcpp Makevars related warning

我是少数使用 Rcpp 进行一些核心计算的 R 包的维护者。希望尝试 Rcpp 0.12.18 Rbloggers

中描述的 Rcpp 包的新功能

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

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

顺便说一句,这会引发一些问题,我认为这些问题会使我的包裹在 CRAN 上被拒绝:

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

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

在此先感谢您的关注

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

更多详细信息一如既往地在编写 R 扩展手册中,否则 许多 现有示例包(全部在 CRAN 上,可在 GitHub 浏览)也可以提供帮助。

例如,这是来自 RcppExamples 包的单切换设置用例:

PKG_CXXFLAGS = -DRCPP_NEW_DATE_DATETIME_VECTORS

(严格来说不再需要,因为 "new" 日期和日期时间向量 类 不久前成为默认值)。

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