我正在使用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))
{
}
如何使其正确?
感谢您的任何评论。
答案 0 :(得分:2)
我在Quazip的README文件中找到了以下消息:
如果要将QuaZIP源直接包含到项目中,或者如果要包含 你想使用QuaZIP编译为静态库 “qmake CONFIG + = statliclib”,你必须定义QUAZIP_STATIC宏, 否则你可能会遇到QuaZIP符号会遇到的问题 标记为dllimported。
也许这会对你有帮助。