您如何使编译器行更短?
通常,当我与其他人一起处理一个项目时,随着时间的推移,编译器在 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
我想知道您使用什么样的方法来使编译器行更短,同时仍然为用户提供显示原始行的选项(如果他们稍后确实需要该信息)。
有没有自动执行此操作的工具?
Often when I'm working on a project with others, the amount of library paths and include paths that get sourced by the compiler in the Makefile get more numerous as time goes by. Also the paths can get very long as well.
Here's an example:
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
I'm wondering what kind of recipes you use to make compiler lines much shorter, while still giving the user the option to display the raw lines if they really need that information later.
Are there tools that do this automatically?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您不仅可以使编译器输出更短,还可以对其进行颜色编码,并添加详细标志。 输出将如下所示:
替代文本 http://img526.imageshack.us/img526/9572/sconsf。 以下是操作
方法(从 SCons Wiki 窃取的颜色主题):
使用“scons --verbose”编译以查看正常的庞大 gcc 输出。
Not only can you make your compiler output shorter, you can colorcode it, and add a verbose flag. The output will look something like this:
alt text http://img526.imageshack.us/img526/9572/sconsf.png
Here's how (color theme stolen from the SCons Wiki):
Compile with "scons --verbose" to see the normal bulky gcc output.
如果主要是“make”期间喷出的大行造成了烦恼,您还可以更改 Makefile 以不回显编译器行,而是使用类似以下内容的内容:
“@”抑制命令行的回显
If it's mostly the spewing of huge lines during 'make' that causes the annoyance, you can also change your Makefile to not echo the compiler line, but to instead have something like:
The '@' suppresses the echo of the command line
使用环境变量怎么样?
对于更复杂的场景,可以使用包装器来调用编译器,以便实际的命令及其参数仅在出现错误或警告时显示。
例如,使用 cmake,许多传统输出已经被大幅缩减。
同样,可以将 spec 文件与 gcc 一起使用。
How about using environment variables?
For more complex scenarios, one can use wrappers to invoke the compiler, so that the actual commands and their parameters only show up on errors or warnings.
Using cmake for example, much of the conventional output is already downstripped heavily.
Similarly, there's the possibility to use spec files with gcc.
在 scons 中,我将换行符插入到命令生成器中,以使长命令更具可读性:
例如,
然后在构造命令字符串时创建一个本地方法以减少混乱。
In scons, I insert newlines into my command generators to make long commands more readable:
e.g.
then I create a local method when constructing the command string to reduce the clutter.