Если я угадаю проблему, ваша SConstruct выглядит примерно так:
env=Environment()
env["CC"] = "gcc"
env["CXX"] = "g++"
env["LINK"] = "g++"
env['CCFLAGS']='-mno-ms-bitfields -fshort-enums -ftest-coverage -fprofile-arcs'
env['CPPDEFINES']=['-DUNIT_TESTS']
env['CPPPATH'] = ['.']
Учитывая, что список инструментов по умолчанию для настройки в Windows следующий, и он прекратит настраивать инструменты, как только найдет один из них, а затем установит флаги, которые должны работать для таких инструментов.
c_compilers = ['msvc', 'mingw', 'gcc', 'intelc', 'icl', 'icc', 'cc', 'bcc32']
Вам нужно будет явно перечислить инструменты, которые вы хотите инициализировать (и не позволять SCons добавлять инструменты по умолчанию) и путь, в котором они будут найдены. Также ваши CPPDEFINES должны быть ['UNIT_TESTS'], а не ['- DUNIT_TESTS '] SCons добавит соответствующие флаги. Обратите внимание, что вам может понадобиться добавить другие инструменты, если вы используете их в своей сборке.
env=Environment(tools=[])
env.AppendENVPath('PATH', PATH_TO_YOUR_COMPILERS)
for tool in ['gcc','gnulink','ar']:
env.Tool(tool)
env['CCFLAGS']='-mno-ms-bitfields -fshort-enums -ftest-coverage -fprofile-arcs'
env['CPPDEFINES']=['UNIT_TESTS']
env['CPPPATH'] = ['.']