通常,当我与其他人一起处理项目时,随着时间的推移,库文件路径的数量和包含在Makefile中由编译器获取的路径的数量会越来越多.路径也可以变得很长.
这是一个例子:
g++ -c -pipe -O2 -Wall -W -DQT_BOOTSTRAPPED -DQT_MOC -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_NO_LIBRARY -DQT_NO_STL -DQT_NO_COMPRESS -DQT_NO_DATASTREAM -DQT_NO_TEXTSTREAM -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_THREAD -DQT_NO_REGEXP -DQT_NO_QOBJECT -DQT_NO_SYSTEMLOCALE -DQT_NO_GEOM_VARIANT -DQT_NO_USING_NAMESPACE -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../../mkspecs/qws/linux-generic-g++ -I. -I../../corelib/arch/generic -I../../../include -I. -I../../../include/QtCore -I. -I.uic/release-shared -o release-shared/moc.o moc.cpp
我想知道你使用什么样的配方来使编译器行更短,同时仍然让用户可以选择显示原始行,如果他们以后真的需要这些信息.
有自动执行此操作的工具吗?
解决方法
如何使用环境变量?
export LONGPATH=/usr/local/projects/include/foo/system/v1 gcc foo.c -o foo -I$LONGPATH
对于更复杂的场景,可以使用包装器来调用编译器,以便实际命令及其参数仅显示在错误或警告上.
例如,使用cmake,大部分传统输出已经严重缩减.
同样,有可能使用spec files with gcc.