Как мне сделать статическую библиотеку 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
Так как мне правильно сделать статическую сборку?
Нет необходимости создавать статическую библиотеку 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 для развертывания.
Спасибо Неджат за ваш ответ. Очень ясно.
Кроме того, для тех, кто пошел по моим стопам, это был случай для чтения руководства. Ответ в:
https://code.google.com/p/qextserialport/wiki/QextSerialPort_1_2_RC
Прямо сказано добавить
CONFIG + = qesp_static
в файл .pro. Это тоже работает.