我正在使用QT4.7.3、VS2008并试图添加QuaZip库。
我得到了QuaZip,Zlib并编译了它,然后我可以生成"quazip.lib“文件。
我将quazip.lib添加到“property>Configuration>Linker->Input->附加依赖项”中,并包括路径。
我编写了下面的源代码。
#include "Updater.h"
#include "quazip.h"
Updater::Updater(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
QuaZip *qZip = new QuaZip();
}但是,在这里,我陷入了麻烦。
错误消息如下所示。
(??0Updater@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z) Updater.obj : error LNK2019:未解决的外部符号"__declspec(dllimport) public:_thiscall QuaZip::QuaZip(void)“(_imp_??0QuaZip@@QAE@XZ)在函数"public:__thiscall Updater::Updater(class QWidget *,class QFlags)”中引用“_thiscall 1>.\updater.exe :致命错误LNK1120: 1未解决的外部变量”
我知道这个错误发生在声明存在但定义不存在的时候。
作为find QuaZip构造函数的结果,我发现如下所示。
QuaZip::QuaZip():
p(new QuaZipPrivate(this))
{
}我怎样才能使它正确?
谢谢您的评论。
发布于 2012-08-06 13:03:42
我在Quazip的自述文件中找到了以下消息:
如果希望将QuaZIP源直接包含到项目中,或者如果要使用使用"qmake CONFIG+=statliclib“编译为静态库的QuaZIP,则必须定义QUAZIP_STATIC宏,否则可能会遇到问题,因为QuaZIP符号将被标记为dllimported。
也许这会对你有帮助。
https://stackoverflow.com/questions/8723167
复制相似问题