3

我正在使用 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( class QWidget *,class QFlags)" (??0Updater@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z) 1>.\updater.exe : 致命错误 LNK1120: 1 unresolved externals

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

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

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

我怎样才能使它正确?

感谢您的任何评论。

4

1 回答 1

3

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

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

也许这会对你有所帮助。

于 2012-08-06T13:03:42.473 回答