Разработчики C/C++ распознают определенный набор аргументов, называемый . Конструктивные переменные.
Эти переменные могут быть установлены либо в среде, либо при вызове построителя, как вы делаете в своем вопросе. Часто проще установить их в среде, что упрощает вызовы сборщиков, а затем изменять переменные только при необходимости.
Вот пример:
env = Environment()
# Notice that CPPPATH, CPPDEFINES, LIBS, and LIBPATH dont include the
# compiler flags -I, -D, -l, and -L respectively, SCons will add those
# in a platform independent manner
env.Append(CCFLAGS=['-g', '-O2'])
env.Append(CPPPATH=['some/include/path'])
env.Append(CPPDEFINES=['YOUR_DEFINE'])
env.Append(LIBS=['pthread'])
env.Append(LIBPATH=['some/lib/path'])
# All of these builder calls use the construction
# variables set on the environment above
env.Object('hello.c')
env.Object('goodbye.c')
env.Program('main.cc')
Если вы хотите переопределить определенную переменную, вы можете сделать следующее
env.Object('hello.c', CPPDEFINES='HELLO')
Или, если вы хотите добавить к определенной переменной всего одним вызовом, вы можете сделать следующее:
env.Object('hello.c', CPPDEFINES=[env['CPPDEFINES'], 'HELLO'])
person
Brady
schedule
23.04.2014