【问题标题】:How to append to existing flag in scons如何附加到scons中的现有标志
【发布时间】:2011-12-29 04:02:01
【问题描述】:

我正在使用 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 

【问题讨论】:

  • 我对你上面的内容有点困惑。 picc 是否需要在“-o”和所需的输出文件名之间没有空格?
  • 哦,你可能应该提到 SCons 的版本和平台(从上面的内容看起来像 windows)。

标签: scons


【解决方案1】:

因此,在 SCons 安装的“工具”目录中四处寻找这些定义:

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['CCCOM'] = '$CC -o${TARGET} -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'

【讨论】:

  • 感谢您的建议。或者,我应该只创建一个自定义构建器,而不是覆盖默认值。
猜你喜欢
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 2011-01-14
  • 2022-11-11
相关资源
最近更新 更多