【问题标题】:ZIMPL skipping incompatibleZIMPL 跳过不兼容
【发布时间】:2016-08-11 12:23:01
【问题描述】:

我正在尝试使用 MINGW64 制作 ZIMPL,但出现以下错误:

myname@... MINGW64 ~/scipoptsuite-3.2.1/zimpl-3.3.3
$ make
-> generating library lib/libzimpl-3.3.3.mingw.x86_64.gnu.opt.a
-> linking bin/zimpl-3.3.3.mingw.x86_64.gnu.normal.opt
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible lib/libgmp.a when searching for -lgmp
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible lib\libgmp.a when searching for -lgmp
....
....
....
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lmsvcrt
collect2.exe: error: ld returned 1 exit status
make: *** [Makefile:170: bin/zimpl-3.3.3.mingw.x86_64.gnu.normal.opt] Error 1

在 ZIMPL 的自述文件中说:

您无法编译的最可能原因是 gmp.h 或 zlib.h 不在您的包含路径 (-I) 中,或者 libgmp.a 或 libz.a 不在 在您的库路径 (-L) 中。

但我的这些文件分别存在于 C:\msys64\mingw64\include 和 C:\msys64\mingw64\lib 中。这不是正确的位置吗?

我的问题: - 这个错误是什么意思? - 提到的文件的正确位置是什么? - 如何将这些文件包含到正确的包含和库路径中?是 -I/mingw64/include 和 -L/mingw64/lib 吗?

提前谢谢你。

【问题讨论】:

    标签: mingw-w64 scip


    【解决方案1】:

    出现这些错误消息的一个原因可能是您的 GMP 库是为您尝试链接到的另一个体系结构构建的(32 位与 64 位)。看看这个问题:skipping incompatible... / cannot find

    您也可以尝试使用此处建议的不同链接器:MinGW-W64 linker skipping incompatible files when searching for third-party static libraries

    我认为您指定的路径已经正确,只是那里的库不适用于您的二进制文件。如果您可以不使用 GMP,我建议您尝试使用选项 GMP=false 编译 ZIMPL。

    【讨论】:

    • 感谢您的回答。我尝试设置GMP=false,但随后出现错误ZIMPL requires the GMP to be linked. Use either ZIMPL=false or GMP=true. Stop. 所以我想这不是一个选项...使用 pacman -R mingw-w64-i686-gmp 我删除了 32 位版本的 gmp(我安装了 32 位和 64 位版本),但仍然无法正常工作。我想尝试另一个链接器,但没有找到如何做到这一点?
    • 您可以通过设置选项VERBOSE=true 来检查make 命令的输出。恐怕我不能再帮你了。在 MinGW 中编译通常是一团糟。我只能推荐一个完整的 Linux 环境。
    猜你喜欢
    • 2012-03-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2021-08-17
    • 2013-06-09
    • 2011-03-08
    • 1970-01-01
    相关资源
    最近更新 更多