【问题标题】:How to check if g++ supports c++14/17 in SCons?如何在 SCons 中检查 g++ 是否支持 c++14/17?
【发布时间】:2018-09-13 12:49:53
【问题描述】:

我使用 scons 作为我的构建系统。

我的一些代码适用于 cpp14 和 cpp17。它们位于“newcpp”之类的文件夹中。我希望我的 SConstruct/Sconscript 可以检查我的 g++ 是否支持这些标志,伪代码如下:

import os,sys
env = Environment(ENV = {'PATH' : os.environ['PATH']})
if [CXX_SUPPORTS('-std=c++14')]
    env.SConscript(dirs=['newcpp'])

我知道 automake/configure 支持这种检查。在scons中怎么做?

【问题讨论】:

    标签: c++11 compilation g++ c++14 scons


    【解决方案1】:

    您很可能想要使用配置上下文。 请参阅用户指南的这一部分 https://scons.org/doc/production/HTML/scons-user/ch23.html

    手册页的这一部分: https://scons.org/doc/production/HTML/scons-man.html#configure_contexts

    很可能你会想要这样的东西:

    env = Environment(CFLAGS='-std=c++14')
    conf = Configure(env)
    if conf.CheckCXX():
       print("Yes CXX14")
       env.SConscript(dirs=['newcpp'])
    env = conf.Finish()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-22
      • 2011-10-01
      • 1970-01-01
      • 2011-10-17
      • 2015-12-29
      • 2011-08-12
      • 1970-01-01
      • 2020-08-04
      相关资源
      最近更新 更多