2012-01-04 88 views
3

我正在使用QT4.7.3,VS2008并尝试添加QuaZip库。在VS2008上使用Windows上的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: ( _imp _ ?? 0QuaZip @@ QAE @ XZ)中引用:解析外部符号 “_ thiscall QuaZip :: QuaZip(无效)公共__declspec(dllimport的)”函数“public:__thiscall Updater :: Updater(class QWidget *,class QFlags)” (?? 0Updater @@ QAE @ PAVQWidget @@ V?$ QFlags @ W4WindowType @ Qt @@@@@ Z) 1>。 \ updater.exe:致命错误LNK1120:1无法解析的外部设备

我知道这个错误发生时声明存在但defini重刑不存在。

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

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

我该如何使它正确?

谢谢你的任何评论。

回答

2

我发现在Quazip的README文件中的下列信息:

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

也许这会帮助你。