如何附加到scons中的现有标志

时间:2011-12-28 06:08:59

标签: scons

我正在使用Hi-Tech C编译器,并希望使用Scons来构建我的项目。编译器可执行文件是picc.exe。它具有与GCC类似的语义,但不是全部。

我也将默认值设置为GCC并尝试从那里进行修改。执行env.Program('main.c')

的输出
picc -o main.o -c 

但是,在Hi-Tech C中,-o标志表示输出文件,例如-Oc:\project\output\first

如何附加到-o,以便输出为:

picc -omain.o -c 

1 个答案:

答案 0 :(得分:2)

所以在SCons安装的“Tools”目录中查找这些定义:

cc.py:    env['CCCOM']     = '$CC -o $TARGET -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
cc.py:    env['SHCCCOM']   = '$SHCC -o $TARGET -c $SHCFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES'
c++.py:    env['CXXCOM']     = '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
c++.py:    env['SHCXXCOM']   = '$SHCXX -o $TARGET -c $SHCXXFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES'
link.py:    env['SHLINKCOM']   = '$SHLINK -o $TARGET $SHLINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
link.py:    env['LINKCOM']     = '$LINK -o $TARGET $LINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'

因此,您可能需要做的就是使用与-o和$ TARGET相邻的版本覆盖env中的这些元素。我认为您可能需要在变量周围放置大括号,例如:

env['CCCOM'] = '$CC -o${TARGET} -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'