问题
我试图告诉我的包使用gcc
代替C++
来编译clang
代码。为什么我的CXX
文件中的Makevars
标志没有被使用?
(我期望/希望解决方案非常简单,但却被我忽略了。)
根据我的理解(请参阅引用),我可以在任一位置指定CXX*
标志
软件包中的
src/Makevars
或~/.R/Makevars
但是,我无法让选项1起作用,只有选项2起作用。
示例构建
这是显示我正在使用的构建选项的屏幕截图。在每种情况下,我都显示
Makevars
和/.R/Makevars
文件,以显示每种情况下我正在使用的文件。选项1:
src/Makevars
在这里,我在
CXX11 = /usr/local/bin/g++-7
中指定src/Makevars
。生成消息表示它正在使用clang
进行构建选项2:〜/.R/Makevars
在这里,我在
CXX11 = /usr/local/bin/g++-7
中指定~/.R/Makevars
。构建消息显示它使用g++
构建示例包
我在最近使用
Rcpp
构建的一些软件包中注意到了这一点,但是如果您想通过一个示例来测试我的googlePolylines
软件包,则为here on github。引用
session 信息
devtools::session_info()
Session info ----------------------------------------------------------------------------------------------
setting value
version R version 3.4.3 (2017-11-30)
system x86_64, darwin15.6.0 ## Mac OS
ui RStudio (1.1.414)
language (EN)
collate en_AU.UTF-8
tz Australia/Melbourne
date 2018-03-11
最佳答案
用https://stat.ethz.ch/pipermail/r-package-devel/2017q4/002087.html引用Duncan Murdoch:
因此,您可以通过src/Makevars
等在PKG_CXXFLAGS
中更改各种标志,但是您不能覆盖CXXFLAGS
或CXX
本身。而且没有PKG_CXX
。