gpt4 book ai didi

c++ - 在 Rcpp Makevars 中设置 CXXFLAGS

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:18 25 4
gpt4 key购买 nike

我想在 Rcpp 项目的 Makevars 中将 C++ 编译器标志设置为 -O0

如果我看一下/etc/R/Makeconf,我发现编译命令似乎是

$(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) -c $< -o $@

ALL_CXXFLAGS = $(R_XTRA_CXXFLAGS) $(PKG_CXXFLAGS) $(CXXPICFLAGS) $(SHLIB_CXXFLAGS) $(CXXFLAGS)

我可以在 Makevars 中编辑变量 $(PKG_CXXFLAGS) 来为特定库添加 header ,但我对 CXXFLAGS = -O3 -pipe -g $(LTO) 不满意。我还希望能够直接在 Makevars 中执行此操作,以便根据我的需要调整每个项目。

当我在 Makevar 中编辑 CXXFLAGS 时,没有任何反应。是否可以调整该变量?另一种方法可能吗?我知道我可以编辑 ~/.R/Makevars,并根据要求进行切换。我想知道是否有更稳健的方法。

最佳答案

您通常需要在本地文件中使用 PKG_* 变体,例如~/.R/Makevars.

这是我的(缩短、编辑的)部分:

## for C code
CFLAGS= -O3 -g0 -Wall -pipe -pedantic -std=gnu99

## for C++ code
#CXXFLAGS= -g -O3 -Wall -pipe -Wno-unused -pedantic -std=c++11
CXXFLAGS= -g -O3 -Wall -pipe -Wno-unused -pedantic

## for Fortran code
#FFLAGS=-g -O3 -Wall -pipe
FFLAGS=-O3 -g0 -Wall -pipe
## for Fortran 95 code
#FCFLAGS=-g -O3 -Wall -pipe
FCFLAGS=-O3 -g0 -Wall -pipe

VER=-4.8
CC=ccache gcc$(VER)
CXX=ccache g++$(VER)
SHLIB_CXXLD=g++$(VER)
FC=ccache gfortran
F77=ccache gfortran
MAKE=make -j8

另一种(系统全局)方法是创建和编辑 /etc/R/Makeconf.site(或者,当 /etc/R/ 不存在时, $RHOME/etc/R/Makeconf.site.

关于c++ - 在 Rcpp Makevars 中设置 CXXFLAGS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22555526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com