C++ 如何设置SCON以输出完整扩展的命令行?
我遇到了一个使用SCON的构建系统。由于不熟悉scons本身是一个相当复杂的框架,我对无法调试构建问题感到非常沮丧 我希望scons打印出被调用的完全扩展的命令行(正如您在大多数构建系统中看到的)我发现您可以使用--debug=presub选项,但是(至少在OSX上)它没有用,因为它打印未扩展变量的值 例如: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
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"