当我尝试使用64位mingw(x86_64-5.1.0-posix-seh-rt_v4-rev0)编译我的项目时,我收到了消息:
BFD: my/project/dir/filename.cpp.obj: plugin needed to handle lto object
为每个源文件。然而,当我使用32位mingw(i686-5.1.0-posix-dwarf-rt_v4-rev0)进行编译时,一切正常。
我的旗帜是:
CXX_FLAGS "-fno-exceptions -fno-rtti -std=c++14 -O3 -fstrict-aliasing -flto -fomit-frame-pointer -march=native -ffast-math -funroll-loops"
LINKER_FLAGS "-O1 -s"
我尝试添加-fuse-linker-plugin和-fno-use-linker-plugin,但它没有帮助。 我的操作系统是64位Windows 10.我使用CLion和CMake,如果它很重要,尽管它不应该。 我该如何解决?
答案 0 :(得分:8)
将LTO插件放入bfd-plugins目录:
mkdir mingw64\lib\bfd-plugins
cp mingw64\libexec\gcc\x86_64-w64-mingw32\5.1.0\liblto_plugin-0.dll mingw64\lib\bfd-plugins\liblto_plugin-0.dll