我最近正在构建一个新的NS3模块。在我的代码中,我使用了C++11 (c++0x)的一些新特性,我想将gcc标志(CXXFLAGS) "-std=c++0x"添加到waf配置系统中。
我尝试过这样做:CXXFLAGS="-std=c++0x" waf configure,然后构建它。然而,事实证明,一些存在的模块,如ipv4 4-地址是不兼容的c++11。因此,我希望为我的新模块指定此标志,以便其他模块不会在c++11上得到遵守。
我试图将它添加到我的新模块中的wscript中。
def configure(conf):
conf.env.append_value('CXXFLAGS', '-std=c++0x')作为第一次审判失败了。
我怎么能这么做?
发布于 2013-12-22 20:44:09
尽管@drahnr的答案对于vanilla waf是正确的,但它不适用于NS-3的构建系统,这显然是OP想要的。要将CXXFLAGS添加到NS-3程序中,可以将它们添加到构建对象中,而不是在配置阶段。
例如:
def build(bld):
obj = bld.create_ns3_program('my_app', ['core', 'other-dependencies'])
obj.source = 'MyApplication.cpp'
obj.cxxflags = ['-std=c++11']发布于 2012-12-18 08:05:23
bld.shlib(source='main.c',
target='myshlib',
cflags = ['-O2', '-Wall'],
cxxflags = ['-O3', '-std=c++0x'],
use = 'myobjects')
bld.objects(source='ip4.c',
cflags = ['-O2', '-Wall'],
cxxflags = ['-std=somethingelse'],
target = 'myobjects')注1-此代码由晶片簿中提供的两个示例组成,根本没有经过测试。
注2-您可能需要让waf知道生成的‘myobject’,或者它们可能不用于构建'myshlib',因为waf在构建之前对所有文件进行索引。
https://stackoverflow.com/questions/13701053
复制相似问题