柯南库的MinGW-w64链接器错误

时间:2018-08-24 14:57:58

标签: c++ cmake linker mingw-w64 conan

最近,我一直在Linux和macOS上使用柯南进行C ++依赖性管理,现在正尝试使其在Windows上运行。我已经在机器上安装了mingw-w64 7.1.0(Rev 2)x86_64(poxis / seh),并创建了一个用MinGW进行构建的柯南配置文件。我可以从柯南安装/构建库而不会出现错误,但是当我尝试使用CMake构建项目时,链接时会出现以下错误:

C:/Users/marcu/.conan/data/libjpeg/9c/bincrafters/stable/package/138b9feca367fddcd510e3315f1e4b740ab5d9bc/lib/libjpeg.a(jcapimin.o): could not read symbols: Invalid operation
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[2]: *** [wxCalc\CMakeFiles\wxCalc.dir\build.make:130: bin/wxCalc.exe] Error 1
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:184: wxCalc/CMakeFiles/wxCalc.dir/all] Error 2
mingw32-make.exe: *** [Makefile:151: all] Error 2

此文件确实存在,并且是使用相同的编译器在我的机器上构建的(conan没有为Windows / gcc 7.1预先构建的libjpeg,因此,conan在我的机器上构建了它)。这是在一个简单的测试项目中,该项目使用wxWidgets创建一个简单的GUI计算器。我用它来测试构建系统/依赖系统。我附上了该项目的链接,以防万一。

要进行构建,请确保已安装cmake和柯南(通过pip3)。

在项目的根目录中运行以下命令:

mkdir build
cd build
conan install .. -pr .\mingw64 --build missing

您现在需要编辑build \ conanbuildinfo.cmake 在第4行上,应该指定wxWidgets lib目录。将gcc_lib添加到路径的末尾。所以

C:/Users/marcu/.conan/data/wxwidgets/3.1.1/bincrafters/stable/package/3b93b0a85f2288d620e8467cf856b03fe7751fec/lib/

应该成为

C:/Users/marcu/.conan/data/wxwidgets/3.1.1/bincrafters/stable/package/3b93b0a85f2288d620e8467cf856b03fe7751fec/lib/gcc_lib

这是由于我正在处理wxWidgets柯南软件包中的错误所致。

然后运行以下命令。

cmake .. -G "MinGW Makefiles"
cmake --build .

关于什么可能导致此错误的任何想法?

可以在以下位置找到该项目:https://drive.google.com/open?id=1HX6YZdNU8yaM57uDgO39vF8HUWWPdIBY

0 个答案:

没有答案