2012-01-04 89 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的 。

也許這會幫助你。