无法在qmake Qt项目中使用静态zlib库中的代码

时间:2015-07-08 13:37:29

标签: c++ qt zlib

我必须在我的DLL中使用zlib(版本1.2.8,已经从官方源代码编译)。我正在使用静态链接,但无法使用zlib中的函数或对象 - 给了我“С2065未声明的标识符”。我正在使用Qt 5.4.1和编译器MSVS2013。这是我的专业档案:

<input type="file" capture="camera" accept="image/*" id="cameraInput" name="cameraInput">

更新: .lib,.dll,.def的路径是Y:/ Git / Modules / TestZLIB / Libs。

zlib.h和zconf.h在项目文件夹中,我也尝试将它们复制到Y:/ Git / Modules / TestZLIB / Libs并从那里将它们连接到项目,但它不起作用我。 其他源文件位于Y:/ Git / Modules / TestZLIB / TestZLIB。

Y:/ Git / Modules / TestZLIB / TestZLIB - 这是一个项目文件夹(来源,.pro文件等)。 Y:/ Git / Modules / TestZLIB / Libs - 这是zlib文件的文件夹。

我能做些什么让它有效? 谢谢!

1 个答案:

答案 0 :(得分:2)

在提问时,将它们设置为明确是一种常见的礼貌。即使您的项目确实名为zlib,也不应该问这样一个项目名称的问题,因为如果不必在每一步都解决歧义,就无法回答任何问题。它还可能会混淆您收到的错误消息。从现在开始,在谈论zlib时,我谈的是压缩库,而不是你的项目。

如果唯一的编译器错误是关于未知标识符,那么您的问题不在于.pro文件。编译器根本没有看到zlib的声明。以下是可能的错误:

  1. 您不在自己的文件中包含zlib标题。
  2. 您的include guards与zlib的冲突有效隐藏了zlib标题内容。
  3. 如果您编写了自己的zlib.h,则可能隐藏了zlib自己的标头。如果是这样,您必须将其重命名为其他内容。
  4. 如果zlib.hzconf.h来自zlib,则它们不属于您的.pro文件。
  5. 确保两者都不是。