我正在使用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/

10-10 14:33