gpt4 book ai didi

gcc - 如何让 -flto 工作?

转载 作者:行者123 更新时间:2023-12-04 02:53:56 38 4
gpt4 key购买 nike

我使用的是 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/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com