【问题标题】:Error when compiling with zlib 1.2.8 on windows在 windows 上使用 zlib 1.2.8 编译时出错
【发布时间】:2013-06-26 20:01:08
【问题描述】:

我在使用 VS2012 和 ICC 13.0 构建的应用程序中链接 zlib 1.2.8。当我编译一个包含的文件before 时,没有问题。当 包含在 之后,我在 中遇到错误,第 454 行编译器试图包含 。更糟糕的是,我在这个#include 之前放置了一个#pragma message(),并且该消息没有出现在构建输出窗口中!

我尝试了著名的 WIN32_LEAN_AND_MEAN,但没有任何改变。

有人知道这个问题的解决方案吗?

谢谢!

【问题讨论】:

  • 您已经有了解决方案。把zlib.h放在前面。
  • 嗨,马克!当然这可以是一个解决方案,但#include 不应该以这种方式排序,不是吗?某处一定有冲突,我想知道它是什么。如果我之前必须包含 zlib.h,我必须更改 很多 代码。
  • 啊,好的。你说没问题,我以为你的意思是没问题。

标签: windows debugging visual-studio-2012 zlib icc


【解决方案1】:

好的,这个bug已经关闭了。

问题来自另一个第三方库,其中宏 HAVE_UNISTD_H 被错误定义。这个定义对那个库没有影响,但是禁止用 zlib 编译。

我的更正是添加一个

#undef HAVE_UNISTD_H

在 zlib.h 或其他库 .h 文件中。

【讨论】:

  • 或者你可以把它放在源代码中的include之间。最好不要修改提供的头文件,因为如果你得到一个新版本,你必须记住再次修改它们。
猜你喜欢
  • 1970-01-01
  • 2011-03-26
  • 2019-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
相关资源
最近更新 更多