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

    科技2026-06-14  1

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

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

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

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

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

    Processed: 0.019, SQL: 9