我想将编译器定义设置为 -DBLUB 以及 -DFOO = 1 。
目前我只有:
env.Append("CPPDEFINES", ["BLUB", "VALUE2"])
我现在想通过“FOO”包含第三个定义:1 因此使用 CPPDEFINES 作为字典,以便稍后我可以很容易地进行测试
env["CPPDEFINES"].get("FOO") == 1
左右。我尝试的一切都会导致语法错误或奇怪的错误。 能解释一下奇怪的方法在python中对我这么做吗?
答案 0 :(得分:4)
如果您需要为任何单个定义指定值,CPPDEFINES
必须是字典。
如果$ 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 })