在 SCons 中,如何临时设置 C 预处理器定义
In SCons, how to set a C preprocessor define temporarily
我的 C 代码包含 #ifdef FOO
。可以在 SCons 命令行中添加一些东西来设置定义,而不必修改 SConstruct
/SConscript
文件吗?
我知道有一个构造变量 CFLAGS
,如果我可以将 -DFOO
放入其中,那应该可以。但是,我找不到从命令行设置构造变量的方法。
不,除非你的 SConstructs/SConscripts 支持某种你可以在命令行上提供的 option/variable(请参阅用户指南 http://www.scons.org/doc/production/HTML/scons-user.html 中的第 10 "Controlling a Build From the Command-Line" 章) ).
根据设计,SCons 使用 "clean" 环境(未导入 shell 变量)来保护您的构建并使其可重复。您不能通过突然从外部注入标志和选项来简单地覆盖它。
但是您可以在 SConstructs 中创建您的构建环境,以便您允许它 "import" 某些 shell 设置(或整个 os.environ)。另请参见 https://bitbucket.org/scons/scons/wiki/FrequentlyAskedQuestions#markdown-header-why-doesnt-scons-find-my-compilerlinkeretc-i-can-execute-it-just-fine-from-the-command-line 中 "most frequently asked FAQ" 的第 1 条。
我的 C 代码包含 #ifdef FOO
。可以在 SCons 命令行中添加一些东西来设置定义,而不必修改 SConstruct
/SConscript
文件吗?
我知道有一个构造变量 CFLAGS
,如果我可以将 -DFOO
放入其中,那应该可以。但是,我找不到从命令行设置构造变量的方法。
不,除非你的 SConstructs/SConscripts 支持某种你可以在命令行上提供的 option/variable(请参阅用户指南 http://www.scons.org/doc/production/HTML/scons-user.html 中的第 10 "Controlling a Build From the Command-Line" 章) ).
根据设计,SCons 使用 "clean" 环境(未导入 shell 变量)来保护您的构建并使其可重复。您不能通过突然从外部注入标志和选项来简单地覆盖它。 但是您可以在 SConstructs 中创建您的构建环境,以便您允许它 "import" 某些 shell 设置(或整个 os.environ)。另请参见 https://bitbucket.org/scons/scons/wiki/FrequentlyAskedQuestions#markdown-header-why-doesnt-scons-find-my-compilerlinkeretc-i-can-execute-it-just-fine-from-the-command-line 中 "most frequently asked FAQ" 的第 1 条。