【发布时间】:2018-10-23 15:47:44
【问题描述】:
在使用 waf 构建系统构建 C++ 代码时,我可以选择特定的 C++ 编译器命令吗?
虽然可以运行“CXX=g++-4.9 waf configure”之类的东西,或者通过在 wscript 文件中设置 os.environ['CXX'] 来获得相同的效果,但是否有一种“正确”的方式这样做?
即在 Makefile 中设置 CXX 变量的 waf 等价物是什么?
【问题讨论】:
在使用 waf 构建系统构建 C++ 代码时,我可以选择特定的 C++ 编译器命令吗?
虽然可以运行“CXX=g++-4.9 waf configure”之类的东西,或者通过在 wscript 文件中设置 os.environ['CXX'] 来获得相同的效果,但是否有一种“正确”的方式这样做?
即在 Makefile 中设置 CXX 变量的 waf 等价物是什么?
【问题讨论】:
我在这个主题上找到的文档很少,这有点奇怪。正如您在问题中提到的那样,我通过在 configure 函数中设置环境变量来做到这一点。
这是一个供好奇的小例子:
import os
def options(opt):
opt.load('wak.tools')
opt.load('compiler_cxx')
def configure(conf):
conf.load('wak.tools')
conf.env.CXX = "g++-4.9" # default compiler
if os.environ['CXX']: # Pull in the compiler
conf.env.CXX = os.environ['CXX'] # override default
# Additional setup of variables
conf.load('compiler_cxx') # Will use the compiler from the environment path
def build(bld):
bld.program(
target='test',
includes='include',
source='src/main.cpp')
【讨论】: