Russian Qt Forum
Ноябрь 24, 2024, 07:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Использование внешних библиотек  (Прочитано 3021 раз)
labview
Гость
« : Август 02, 2010, 21:43 »

Всем привет!

Столкнулся с очередной проблемкой. Скачал интерессующую меня библиотеку (под названием QExtSerialPort) из интернета. Вложены были файлы .h и .cpp, а так же файл .pro.
Почитав в интернете, что сначала нужно скомпилировать .pro с помощью qmake, а потом получив make скомпилировать либо .dll, либо .a.

Всё сделал, теперь у меня имеется и .dll и .a. Отлично, что теперь делать дальше? Как мне подцепить библиотеку в проект?

Открываю например один из приложеных примеров и пытаюсь скомпилировать, но компайлер ругается, что ему нехватает -lqextserialportd:

"cannot find -lqextserialportd"

Пожалуйста обьясните новичку что и как с внешними библиотеками. Спасибо.

С уважением, labview.
Записан
SABROG
Гость
« Ответ #1 : Август 02, 2010, 22:09 »

В .pro файле для компилятора gcc должно быть примерно такое:

Код:
*-g++*{
LIBRARY_PATH = path/to/library
LIBRARY_NAME = mylibraryname #.a file
INCLUDEPATH += .;$$LIBRARY_PATH/include
LIBS += -L $$LIBRARY_PATH/lib -l$$LIBRARY_NAME
CONFIG(debug): LIBS = $$join(LIBS,,,d) #debug version
}

Для остальных компиляторов в зависимости от параметров командной строки.
Записан
labview
Гость
« Ответ #2 : Август 02, 2010, 22:58 »

Спасибо!

Разрешите выложить настройки проекта:

Код:
######################################################################
# QextSerialPort Test Application (QESPTA)
######################################################################


PROJECT = QESPTA
TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += ../..
QMAKE_LIBDIR += ../../build


OBJECTS_DIR    = obj
MOC_DIR        = moc
UI_DIR         = uic
CONFIG      += qt thread warn_on


HEADERS += MainWindow.h \
MessageWindow.h \
QespTest.h

SOURCES += main.cpp \
MainWindow.cpp \
MessageWindow.cpp \
QespTest.cpp

CONFIG(debug, debug|release):LIBS  += -lqextserialportd
else:LIBS  += -lqextserialport

unix:DEFINES   = _TTY_POSIX_
win32:DEFINES  = _TTY_WIN_

OTHER_FILES +=

Насколько я понимаю
QMAKE_LIBDIR += ../../build
показывает на папку с библиотекой, я проверил, так и есть, там находятся и .dll и .a

CONFIG(debug, debug|release):LIBS  += -lqextserialportd
else:LIBS  += -lqextserialport
говорит о том, что нужно брать файл для дибага, если в настройках выбран пункт debug. Всё верно.

Да, компайлер g++, ос Windows.


P.S. вопрос снимается. После того как я стёр всю папку с библиотекой и перелинковал всё заново, всё заработало как и должно было. Видимо я где то что то в первый раз напутал.
« Последнее редактирование: Август 02, 2010, 23:14 от labview » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.