Могу ли я использовать QImage в своем коде, пока я компилирую свой проект как статическую библиотеку (неопределенная ссылка)? - PullRequest
0 голосов
/ 04 июня 2018

Я разрабатываю проект в Qt Creator, и мне нужно нарисовать изображение в функции-члене класса, которая скомпилирована как статическая библиотека без ошибок, но когда я пытаюсь использовать эту функцию, я получаю следующую ошибку:

ошибка: неопределенная ссылка на 'QImage :: QImage (int, int, QImage :: Format)'

ошибка: неопределенная ссылка на 'QImage :: isNull () const'

ошибка: неопределенная ссылка на 'QImage :: fill (unsigned int)'

ошибка: неопределенная ссылка на 'QImage :: setPixel (int, int, unsigned int)'

ошибка: неопределеннаяссылка на 'QImage :: save (QString const &, char const *, int)

ошибка: неопределенная ссылка на' QImage :: ~ QImage () '

ошибка: неопределенная ссылка на' QImage:: ~ QImage () '

Итак, вопрос в том, могу ли я использовать QImage со статической сборкой lib?

В файле .pro у меня есть:

ШАБЛОН = lib

CONFIG + = staticlib

QT + = gui

Отредактировано: Я использую компилятор GCC 4.9для Андреяoid, если компиляция с использованием MSVC2015 для Windows выглядит следующим образом:

-1: ошибка: LNK2019: неразрешенный внешний символ "__declspec (dllimport) public: __thiscall QImage :: QImage (int, int, enum QImage:: Format) "(__imp _ ?? 0QImage @@ QAE @ HHW4Format @ 0 @@ Z) * ​​1037 *

-1: ошибка: LNK2019: неразрешенный внешний символ" __declspec (dllimport) public: virtual __thiscall QImage :: ~QImage (void) "(__imp _ ?? 1QImage @@ UAE @ XZ)

-1: ошибка: LNK2019: неразрешенный внешний символ" __declspec (dllimport) public: void __thiscall QImage :: setPixel (int, int,без знака int) "(__imp_? setPixel @ QImage @@ QAEXHHI @ Z) * ​​1041 *

и т. д.

1 Ответ

0 голосов
/ 04 июня 2018

Созданная вами статическая библиотека не связана с Qt.Это просто коллекция объектных файлов.Исполняемый файл, с которым связана эта статическая библиотека, должен быть связан с Qt - и этот Qt должен быть статической сборкой в ​​вашем случае.

...