我有一个项目,大约需要8秒钟与g ++和ld链接.
它使用了一堆静态库,大部分代码都是c ++.
我对如何缩短链接时间的一般提示感兴趣.从"不包括调试符号"到"使代码减少spagetti"的任何内容
bre*_*uck 10
我在以前的工作中处理了这个问题多年.在链接大量静态库时,GNU链接器只会出现严重的性能问题.有一次,链接时间与编译时间相当,我们发现这很奇怪,我们实际上已经对此进行了调查并弄明白了.
您可以尝试在链接之前将静态库合并为"超级对象".而不是像这样链接:
$ g++ -o program program.o $STATIC_LIBS
Run Code Online (Sandbox Code Playgroud)
你可以试试这个:
$ ld -r -o libraries.o --whole-archive $STATIC_LIBS
$ g++ -o program program.o libraries.o
Run Code Online (Sandbox Code Playgroud)
请注意,此方法使链接器没有机会排除未使用的对象代码,因此二进制文件的大小可能会有所增加.
归档时间: |
|
查看次数: |
10462 次 |
最近记录: |