CMake zlib 在 Windows 上构建

新手上路,请多包涵

我正在尝试使用 CMake 为 Windows 构建 zlib 1.2.8,但我遇到了不知道如何修复的构建错误。这是我的 CMake GUI:

在此处输入图像描述

这会生成没有错误,但是当我构建生成的解决方案时。我收到此错误:

2>——构建开始:项目:zlib,配置:Release x64 ——

2> 创建库 C:/Users/erik/Documents/zlib/1.2.8/project/zlib-1.2.8-vc10/Release/zlib.lib 和对象 C:/Users/erik/Documents/zlib/1.2.8 /project/zlib-1.2.8-vc10/Release/zlib.exp

2> inflate.obj : 错误 LNK2019: 函数 inflate 中引用的未解析外部符号 inflate_fast

2>infback.obj : 错误 LNK2001: 无法解析的外部符号 inflate_fast

2>C:\Users\erik\Documents\zlib\1.2.8\project\zlib-1.2.8-vc10\Release\zlib.dll : 致命错误 LNK1120: 1 unresolved externals

我不知道如何解决这个问题,所以我很感激任何帮助。

原文由 elveatles 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 922
1 个回答

根据 https://wiki.apache.org/httpd/Win64Compilation 一个非常相似的错误意味着:

这意味着您在 -DASMV -DASMINF 或 OBJ=“inffasx64.obj gvmat64.obj inffas8664.obj” 中有错字,因为 inflate_fast 在 inffas8664.c 中定义。


我能够用一个简单的方法成功构建:

 mkdir C:\Builds\zlib; cd C:\Builds\zlib
cmake -G "Visual Studio 12 2013" -A x64 D:\Downloads\zlib-1.2.8\
cmake --build .

我查看了我的 cmake 缓存,发现 AMD64 设置为 false,这与您的 cmake-gui 窗口显示的不同。将其设置为 true 会导致我出现各种构建错误,尽管不是您显示的错误。

CMakeLists.txt 说这个选项是为了启用 AMD64 程序集实现。不这样做似乎是最简单的解决方案。

原文由 bames53 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏