2015-08-26 35 views
8

当我试图编译我的项目有64位的MinGW(x86_64-5.1.0-POSIX-SEH-rt_v4-REV0)我得到的消息:MinGW的64位Windows系统:插件需要处理LTO对象

BFD: my/project/dir/filename.cpp.obj: plugin needed to handle lto object 

为每个源文件。然而,当我用32位mingw(i686-5.1.0-posix-dwarf-rt_v4-rev0)进行编译时,everething是可以的。

我的标志是:

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" 

我尝试添加 - 保险丝连接体 - 插件和-fno用接头 - 插件,但它并没有帮助。 我的操作系统是64位的Windows 10.如果它很重要,我使用CLion和CMake,但它不应该。 我该如何解决它?

回答

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 
+0

你知道这是为什么不安装过程中做了什么? – EvgeniyZh

+0

我认为这是因为存在多个插件(gcc/llvm),但只有一个可以自动加载到目前为止。 – ssbssa