MinGW-w64 启用 LTO 加快链接速度

GCC 链接慢是个很要命的问题。在 Windows 下使用 MinGW-w64 编译器时,项目稍大一些,链接就会变得非常慢,然而使用 MSVC 编译相同的代码时,链接用时都是毫秒级。网上搜索了一圈没有找到比较好的解决办法。

进一步了解到 GCC 4.7.0 开始支持 LTO(链接时间优化),信息来源是 这篇博客,但默认情况下是不开启 LTO 的。

Windows 下要启用这个功能很简单,做两件事:

  1. MINGW-根目录\libexec\gcc\x86_64-w64-mingw32\8.1.0 下的 liblto_plugin-0.dll,复制到 MINGW-根目录\lib\bfd-plugins 下(若目标文件夹不存在需要手动创建);
  2. 增加编译器标志 -flto,如果用 CMake 就在 CMakeLists.txt 中加上:
    if(CMAKE_COMPILER_IS_GNUCXX)
        add_compile_options(-flto)
    endif(CMAKE_COMPILER_IS_GNUCXX)
    

我自己这样配置之后,链接过程明显加快,并且创建的可执行文件体积也小了很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值