作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用的是 GCC 4.7.2 和 LD 2.23,但是当我将 -flto 添加到我的编译选项时,我的编译时间增加了 20% 以上!该手册似乎表明优化工作需要 -fuse-linker-plugin。它还说默认情况下使用 -flto 启用它,但是当我明确添加它时,我在链接命令中看到以下错误:
g++: error: -fuse-linker-plugin is not supported in this configuration
根据手册,它应该被 LD 2.21 或更高版本支持。知道为什么我会收到此错误吗?作为引用,这里是我的完整编译命令的示例:
g++ -Wall -pipe -O3 -flto -fno-strict-aliasing -mtune=generic --no-exceptions -fPIC -c some.cc
g++ -o exec -Xlinker some1.o some2.o -static some1.a some2.a -Wl,--wrap,open -flto -fuse-linker-plugin
运行'ld --help | grep plugin' 显示“-plugin”选项所以我不明白为什么 GCC 会提示:
-plugin PLUGIN Load named plugin
-plugin-opt ARG Send arg to last-loaded plugin
最佳答案
链接时间优化不应该减少编译时间,而是优化程序的运行时间。
@options,只需将“-flto -fuse-linker-plugin”添加到您的 CFLAGS(或 C++ 的 CXXFLAGS)和 LDFLAGS,它应该可以正常工作。
@gold:ld --version 可能会返回 gnu LD,切换到 gold,创建 ld 符号链接(symbolic link)
which ld指向
which ld.gold例如
ln -s /usr/bin/ld.gold /usr/bin/ld
关于gcc - 如何让 -flto 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17047674/
我是一名优秀的程序员,十分优秀!