首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何指定gcc旗(CXXFLAGS),特别是针对特定模块?

如何指定gcc旗(CXXFLAGS),特别是针对特定模块?
EN

Stack Overflow用户
提问于 2012-12-04 10:40:40
回答 2查看 8.4K关注 0票数 9

我最近正在构建一个新的NS3模块。在我的代码中,我使用了C++11 (c++0x)的一些新特性,我想将gcc标志(CXXFLAGS) "-std=c++0x"添加到waf配置系统中。

我尝试过这样做:CXXFLAGS="-std=c++0x" waf configure,然后构建它。然而,事实证明,一些存在的模块,如ipv4 4-地址是不兼容的c++11。因此,我希望为我的新模块指定此标志,以便其他模块不会在c++11上得到遵守。

我试图将它添加到我的新模块中的wscript中。

代码语言:javascript
复制
def configure(conf):
    conf.env.append_value('CXXFLAGS', '-std=c++0x')

作为第一次审判失败了。

我怎么能这么做?

EN

回答 2

Stack Overflow用户

发布于 2013-12-22 20:44:09

尽管@drahnr的答案对于vanilla waf是正确的,但它不适用于NS-3的构建系统,这显然是OP想要的。要将CXXFLAGS添加到NS-3程序中,可以将它们添加到构建对象中,而不是在配置阶段。

例如:

代码语言:javascript
复制
def build(bld):   
    obj = bld.create_ns3_program('my_app', ['core', 'other-dependencies'])
    obj.source = 'MyApplication.cpp'
    obj.cxxflags = ['-std=c++11']
票数 4
EN

Stack Overflow用户

发布于 2012-12-18 08:05:23

根据waf书1.7.8,第10.1.1和10.1.2节

代码语言:javascript
复制
    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在构建之前对所有文件进行索引。

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

https://stackoverflow.com/questions/13701053

复制
相关文章

相似问题

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