3

我的意图是最终得到一个编译器命令行,包括 -DOEM="FOO BAR"

我的 SConstruct 文件中有以下内容:

opts = Options( 'overrides.py', ARGUMENTS )
opts.Add( 'OEM_NAME', 'Any string can be used here', 'UNDEFINED' )
.
.
.
if (env.Dictionary('OEM_NAME') != 'UNDEFINED'):  
    OEM_DEFINE = 'OEM=' + str(env.Dictionary('OEM_NAME'))
    env.Append( CPPDEFINES=[ OEM_DEFINE ] )

然后我将以下内容放入“overrides.py”文件中:

OEM_NAME = "FOO BAR"

我似乎最终在生成的命令行中使用“-DOEM=FOO BAR”。有人可以指出我正确的方向吗?谢谢。

4

1 回答 1

3

CPPDEFINES 可以是字典(scons 用户指南有一个示例)。我想不出摆脱周围引号的方法,所以我不得不在字符串周围加双转义引号:

env = Environment(CPPDEFINES = {'OEM': '\\"FOO BAR\\"'})
于 2010-04-27T23:19:05.250 回答