Qt QextSerialPort статическая библиотека

Как мне сделать статическую библиотеку QextSerialPort для платформы Windows для использования с Qt 4.8.5

Я не понимаю, как изменить файлы .pro или .pri для этого. (Файл .prf продолжает восстанавливаться).

Поэтому я попытался изменить результирующий файл .vcproj, чтобы сделать статическую сборку, и удалил некоторые из определений, но я все еще получаю предупреждения, такие как:

qextserialport.lib (qextserialport.obj): предупреждение LNK4006: «public:
__thiscall QextSerialPort :: QextSerialPort (класс QString const &, enum QextSerialPort :: QueryMode, класс QObject *) «(?? 0QextSerialPort @@ QAE @ ABVQString @@ W4QueryMode @ 0 @ PAVQObject @@@ Z)
уже определено в qextserialportd1.lib (qextserialportd1.dll); второй
определение игнорируется

и во время выполнения получите «Системная ошибка: программа не может запуститься, потому что qextserailportd1.dll отсутствует на вашем компьютере». Что, конечно, верно, потому что я пытаюсь сделать статическую сборку, используя .lib

Так как мне правильно сделать статическую сборку?

3

Решение

Нет необходимости создавать статическую библиотеку QextSerialPort. Вы можете просто использовать исходный код в вашем приложении. Просто включите это .pri файл в вашем .pro файл :

include(Path/To/qextserialport.pri)

Или скопируйте исходный код QextSerialPort из src каталог в каталог приложения и добавьте следующую строку в файл проекта:

include(qextserialport.pri)

Теперь вы можете включить заголовочный файл:

#include "qextserialport.h"

И использовать библиотеку:

QextSerialPort * port = new QextSerialPort("COM1");
connect(port, SIGNAL(readyRead()), this, SLOT(onDataAvailable()));
port->open();

Без необходимости связывать библиотеку или ставить DLL для развертывания.

1

Другие решения

Спасибо Неджат за ваш ответ. Очень ясно.

Кроме того, для тех, кто пошел по моим стопам, это был случай для чтения руководства. Ответ в:
https://code.google.com/p/qextserialport/wiki/QextSerialPort_1_2_RC

Прямо сказано добавить
CONFIG + = qesp_static

в файл .pro. Это тоже работает.

0

По вопросам рекламы [email protected]