использование QuaZip на Windows с VS2008 - PullRequest
3 голосов
/ 04 января 2012

Я использую 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) 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))
{
}

Как я могу исправить это?

Спасибо за любой комментарий.

1 Ответ

2 голосов
/ 06 августа 2012

Я обнаружил следующее сообщение в файле README Quazip:

Если вы хотите включить источники QuaZIP непосредственно в ваш проект или если вы хотите использовать QuaZIP, скомпилированный как статическую библиотеку, используя "qmake CONFIG += statliclib ", вам необходимо определить макрос QUAZIP_STATIC, в противном случае вы можете столкнуться с проблемами, поскольку символы QuaZIP будут помечены как импортированные.

Возможно, это поможет вам.

...