【问题标题】:ld.exe: cannot find -lmsvcrtld.exe:找不到 -lmsvcrt
【发布时间】:2013-10-13 12:37:43
【问题描述】:

我正在尝试编译 Niotso,但是在从源代码构建时遇到了问题。

我想我可能遗漏了一些明显的东西,所以如果有人知道我可能做错了什么,请告诉我

c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw3
2/bin/ld.exe: skipping incompatible c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32
/4.8.1/../../../../x86_64-w64-mingw32/lib/libmsvcrt.a when searching for -lmsvcrt
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw3
2/bin/ld.exe: skipping incompatible c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32
/4.8.1/../../../../x86_64-w64-mingw32/lib\libmsvcrt.a when searching for -lmsvcrt
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw3
2/bin/ld.exe: skipping incompatible c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32
/4.8.1/../../../../x86_64-w64-mingw32/lib/libmsvcrt.a when searching for -lmsvcrt
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw3
2/bin/ld.exe: cannot find -lmsvcrt
collect2.exe: error: ld returned 1 exit status
_deps\freetype\CMakeFiles\freetype_shared.dir\build.make:323: recipe for target
'../_dist/windows/freetype.dll' failed
mingw32-make[2]: *** [../_dist/windows/freetype.dll] Error 1
CMakeFiles\Makefile2:77: recipe for target '_deps/freetype/CMakeFiles/freetype_s
hared.dir/all' failed
mingw32-make[1]: [_deps/freetype/CMakeFiles/freetype_shared.dir/all] Error 2
Makefile:74: recipe for target 'all' failed
mingw32-make: [all] Error 2

【问题讨论】:

  • 在我看来,当您只有 64 位库可用时,您正在构建一个 32 位应用程序。但我猜。

标签: c++ gcc linker cmake mingw


【解决方案1】:

您的 MinGW 工具链分布是单目标的,目标是 64 位。可能在 Niotso 的构建系统中的某个地方包含了 -m32 开关,它强制执行 32 位编译模式。但由于您的工具链不包含 libmsvcrt.a 的 32 位版本,它抱怨它确实找到了 libmsvcrt.a 的 64 位版本,但它想要 32 位版本,因此跳过前者。

您有 3 个选项:

  1. 查看 Niotso 的构建系统(无论它是什么) -m32 标记并尝试消除它,然后您将生成 Niotso 的 64 位二进制文​​件;
  2. 将 MinGW 分发更改为单目标(针对 32 位), 那么您将生成 Niotso 的 32 位二进制文​​件;
  3. 将 MinGW 分发更改为双目标(同时针对 32 位 和 64 位),那么您将再次生成 Niotso 的 32 位二进制文​​件;

    注意:我知道的唯一双目标工具链是 TDM-GCC 和基于 SJLJ 的 MinGW-w64。

【讨论】:

猜你喜欢
  • 2021-07-13
  • 2011-06-23
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2019-10-27
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多