如何检查g ++是否支持SCons中的c ++ 14/17?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查g ++是否支持SCons中的c ++ 14/17?相关的知识,希望对你有一定的参考价值。

我正在使用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中做到这一点?

答案

您最有可能想要使用配置上下文。请参阅用户指南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()

以上是关于如何检查g ++是否支持SCons中的c ++ 14/17?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查ifstream是不是是C ++中的文件结尾

检查用户是不是是C中的root用户?

C - 检查给定参数是不是为自然数

excel中如何检查一列中的内容是不是包含在另一个文档的一列中。

如何检查目标 c 中的 JSON 格式?

如何检查表 1 中的值是不是用于表 2?