【问题标题】:using QuaZip on Windows with VS2008在带有 VS2008 的 Windows 上使用 QuaZip
【发布时间】:2012-08-06 21:03:42
【问题描述】:

我正在使用 QT4.7.3、VS2008 并尝试添加 QuaZip 库。

我得到了 QuaZip、Zlib 并编译它,然后我可以制作“quazip.lib”文件。

我将 quazip.lib 添加到“项目属性->配置属性->链接器->输入->附加依赖项”并包含路径。

我写的源代码如下。

#include "Updater.h"
#include "quazip.h"

Updater::Updater(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);

    QuaZip *qZip = new QuaZip();
}

但是,在这里,我遇到了问题。

错误信息如下所示。

Updater.obj:错误 LNK2019:未解析的外部符号 “__declspec(dllimport) public: _thiscall QuaZip::QuaZip(void)” (_imp_??0QuaZip@@QAE@XZ) 在函数“public: __thiscall”中引用 Updater::Updater(类 QWidget *,类 QFlags)" (??0Updater@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z) 1>.\updater.exe : 致命错误 LNK1120: 1 unresolved externals

我知道当声明存在但定义不存在时会发生此错误。

作为找到 QuaZip 构造函数的结果,我发现如下。

QuaZip::QuaZip():
  p(new QuaZipPrivate(this))
{
}

我怎样才能使它正确?

感谢您的任何评论。

【问题讨论】:

    标签: qt quazip


    【解决方案1】:

    我在 Quazip 的 README 文件中发现了以下消息:

    如果您想将 QuaZIP 源代码直接包含到您的项目中,或者如果 您想使用编译为静态库的 QuaZIP “qmake CONFIG+=statliclib”,你必须定义 QUAZIP_STATIC 宏, 否则你可能会遇到问题,因为 QuaZIP 符号会 标记为 dllimported。

    也许这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多