首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包生成忽略Makevars标志

包生成忽略Makevars标志
EN

Stack Overflow用户
提问于 2018-03-11 07:04:18
回答 1查看 1.6K关注 0票数 9

问题

我试图告诉我的包使用gcc来编译C++代码,而不是clang。为什么在我的CXX文件中没有使用我的Makevars标志?

(我期待/希望这个解决方案非常简单,我已经忽略了。)

根据我的理解(请参阅references),我可以在以下任何一个中指定CXX*标志

  1. 包中的src/Makevars,或
  2. ~/.R/Makevars

但是,我不能让选项1工作,只有选项2。

示例构建

下面是屏幕截图,显示我正在使用的构建选项。在每种情况下,我都会同时显示Makevars/.R/Makevars文件,以显示我在每种情况下使用的是哪个文件。

src/Makevars 选项1:

在这里,我在src/Makevars中指定了src/Makevars。构建消息说它是用clang构建的

选项2:~/.R/Makevars

在这里,我在~/.R/Makevars中指定了~/.R/Makevars。生成消息显示它使用g++构建

示例包

我在最近使用Rcpp构建的几个包上注意到了这一点,但是如果您想要测试我的googlePolylines包的例子是在github上

参考文献

会话信息

代码语言:javascript
运行
复制
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 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-12 16:00:44

引用邓肯·默多克在https://stat.ethz.ch/pipermail/r-package-devel/2017q4/002087.html中的话

根据编写R扩展中的1.2.1节“使用Makevars”,在Makevars之后包含了R_HOME/etcR_ARCH/Makeconf,所以您看到的是设计。我相信这是为了使软件包能够与构建R的工具兼容(记住,包是为分发给不同的系统而设计的)。

因此,您可以通过例如src/Makevars更改PKG_CXXFLAGS中的各种标志,但不能覆盖CXXFLAGSCXX本身。也没有PKG_CXX

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49217539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档