在 SCons 中创建混合(值集)CPPDEFINES

发布于 2024-12-05 18:27:22 字数 374 浏览 0 评论 0原文

我想将编译器定义设置为 -DBLUB 以及 -DFOO=1

目前我只有:

env.Append("CPPDEFINES", ["BLUB", "VALUE2"])

我现在想通过 "FOO" : 1 包含第三个定义,因此使用 CPPDEFINES 作为字典,这样我以后就可以很容易地进行测试

env["CPPDEFINES"].get("FOO") == 1

或所以。我尝试的一切都会导致语法错误或奇怪的错误。 有人可以向我解释一下在 python 中执行此操作的奇怪方法吗?

I'd like to set the compiler defines to -DBLUB as well as -DFOO=1.

Currently I only have:

env.Append("CPPDEFINES", ["BLUB", "VALUE2"])

I now would like to include a third define via "FOO" : 1 and thus use CPPDEFINES as a dictionary so I can later on test quite easy

env["CPPDEFINES"].get("FOO") == 1

or so. Everything I attempted leads to syntax errors or strange errors.
Could one explain the strange ways to do this in python to me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

音盲 2024-12-12 18:27:22

如果您需要为任何单个定义指定一个值,CPPDEFINES 必须是一个字典。

来自 scons 用户手册

如果 $CPPDEFINES 是字典,则 $CPPDEFPREFIX 和 $CPPDEFSUFFIX 构造变量的值将附加到字典中每个项目的开头和结尾。每个字典项的键是一个定义为该字典项对应值的名称;如果值为 None,则定义名称时没有显式值。

对于你的例子,我建议:

env.Append(CPPDEFINES = { 'BLUB': None, 'VALUE2': None, 'Foo': 1 })

env.Append(CPPDEFINES = { 'BLUB': None, 'VALUE2': None })
...and sometime later...
env.Append(CPPDEFINES = { 'Foo': 1 })

If you need to specify a value for any single define, CPPDEFINES must be a dictionary.

From the scons User Manual:

If $CPPDEFINES is a dictionary, the values of the $CPPDEFPREFIX and $CPPDEFSUFFIX construction variables will be appended to the beginning and end of each item from the dictionary. The key of each dictionary item is a name being defined to the dictionary item's corresponding value; if the value is None, then the name is defined without an explicit value.

For your example, I suggest:

env.Append(CPPDEFINES = { 'BLUB': None, 'VALUE2': None, 'Foo': 1 })

or

env.Append(CPPDEFINES = { 'BLUB': None, 'VALUE2': None })
...and sometime later...
env.Append(CPPDEFINES = { 'Foo': 1 })
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文