在Windows上使用QuaZip和VS2008

时间:2012-01-04 06:59:46

标签: qt quazip

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

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

我将quazip.lib添加到“Project property-> Configuration Properties-> Linker-> Input-> Additional Dependencies”并包含pathes。

我编写的源代码如下。

#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个未解析的外部

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

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

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

如何使其正确?

感谢您的任何评论。

1 个答案:

答案 0 :(得分:2)

我在Quazip的README文件中找到了以下消息:

  

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

也许这会对你有帮助。

相关问题