2015-01-05 2 views
3

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

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

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

qextserialport.lib(qextserialport.obj) : warning LNK4006: "public: __thiscall QextSerialPort::QextSerialPort(class QString const &,enum QextSerialPort::QueryMode,class QObject *)" ([email protected]@[email protected]@@[email protected]@[email protected]@@Z) already defined in qextserialportd1.lib(qextserialportd1.dll); second definition ignored

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

Итак, как правильно выполнить статическую сборку?

ответ

1

Нет необходимости создавать статическую библиотеку 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 для развертывания.

0

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

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

Он прямо говорит, чтобы добавить CONFIG + = qesp_static

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

+1

Если вы считаете, что ответ Неджата полезен, и он решает вашу проблему, пожалуйста, рассмотрите **, принимая ** ответ (нажав «V» под партитурой). Напротив, если вы считаете, что ваш собственный ответ лучше, вы можете принять его вместо этого. Если все текущие ответы не являются достаточно хорошими, вы должны принять лучший ответ, чтобы люди рассмотрели вашу проблему, и другие люди, которые имеют одинаковую проблему, принимают принятый ответ в качестве стандартного решения. – Tay2510

Смежные вопросы