我正在使用QT4.7.3,VS2008,并尝试添加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:无法解析的外部符号
“ __declspec(dllimport)公共:_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))
{
}
我该如何纠正?
感谢您的任何评论。
最佳答案
我在Quazip的自述文件中找到了以下消息:
如果要将QuaZIP源直接包含到项目中,或者
您想要使用以下方式将QuaZIP编译为静态库
“ qmake CONFIG + = statliclib”,您必须定义QUAZIP_STATIC宏,
否则您可能会遇到问题,因为QuaZIP符号将
标记为dllimported。
也许会对您有所帮助。
关于qt - 在带有VS2008的Windows上使用QuaZip,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8723167/