3

私の意図は、-DOEM ="FOOBAR"を含むコンパイラコマンドラインで終わることです。

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=FOOBAR」が表示されてしまうようです。誰かが私を正しい方向に向けることができますか?ありがとう。

4

1 に答える 1

3

CPPDEFINES は辞書にすることができます (scons ユーザーガイドにがあります)。周囲の引用符を取り除く方法がわからなかったので、文字列の周りの引用符を二重にエスケープする必要がありました。

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