C++ 如何设置SCON以输出完整扩展的命令行?

C++ 如何设置SCON以输出完整扩展的命令行?,c++,macos,scons,C++,Macos,Scons,我遇到了一个使用SCON的构建系统。由于不熟悉scons本身是一个相当复杂的框架,我对无法调试构建问题感到非常沮丧 我希望scons打印出被调用的完全扩展的命令行(正如您在大多数构建系统中看到的)我发现您可以使用--debug=presub选项,但是(至少在OSX上)它没有用,因为它打印未扩展变量的值 例如: Building build/obj/ios-uni-rel-sta-clang/common/libs/boost/libs/date_time/src/gregorian/date_g

我遇到了一个使用SCON的构建系统。由于不熟悉scons本身是一个相当复杂的框架,我对无法调试构建问题感到非常沮丧

我希望scons打印出被调用的完全扩展的命令行(正如您在大多数构建系统中看到的)我发现您可以使用--debug=presub选项,但是(至少在OSX上)它没有用,因为它打印未扩展变量的值

例如:

Building build/obj/ios-uni-rel-sta-clang/common/libs/boost/libs/date_time/src/gregorian/date_generators.i386.o with action:
  $SHCXX -o $TARGET -c $SHCXXFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES
您还可以在scons命令行上提供一个VERBOSE=1参数,但是(至少在我得到的2.3.4版本中),它似乎没有太多的冗余

我并不是说烤饼不好,但它变得有点累人和膨胀,以维持:(

有人熟悉Scons吗?什么模块,实际命令在哪里调用?我只想添加一些打印

或者,您如何设置PyDev或PyCharm以使用SCON进行连接--debug=pdb?有人这样做吗?

SHOWBUILD=1

例如: $>scons SHOWBUILD=1


这对我来说是有效的

在SConstruct、SConscript或某个python模块中的某个地方(可能在top dir下的site_scons中)有人正在更改*COMSTR env变量

它将看起来像:

env['SHCXXCOMSTR'] = "Building $TARGET"
或:

您需要注释掉这些行

默认的SCons行为是显示命令行


你能告诉我现在的实际输出是什么吗?还有你想构建什么软件包?SCons允许构建系统开发人员隐藏完整的输出。它使用的是修补过的SCons吗?我在windows上有2.3.4,它会打印出所有肮脏细节的完整命令行。我使用的是2.4.0,我结束了命令行python调试SCons并添加了用于打印扩展命令行的Action.py模块第827行和第828行之间的ed'print“cmd=“+str(env.subs(cmd))”语句不是scons默认值,但必须在某些sconstruct/sconscripts中实现。
for k in env.keys():
    if k.endswith('COMSTR'):
        env[k] = "Building $TARGET"