Перейти к содержимому

Как подключить стороннюю библиотеку в qt creator

  • автор:

Как подключить «стороннюю» библиотеку в Qt

Пытаюсь подключить библиотеку http://librtf.sourceforge.net/ для работы с текстом на С++ — не получается. Делаю это через заголовочный файл, хотя слышал что можно через Visual Studio 2010 библиотеку подключить, а в Qt она будет как встроенная/ Вот файл main.cpp

 #include //#include "librtf.h" #include int main(int argc, char *argv[])

Файл ecsperim.pro

 QT += core QT -= gui TARGET = ecsperim CONFIG += console CONFIG -= app_bundle TEMPLATE = apps SOURCES += main.cpp #INCLUDEPATH += C://Program Files//Microsoft Visual Studio 10.0//libraries//librtf-0.0.3// #LIBS += C://Program Files//Microsoft Visual Studio 10.0//libraries//librtf-0.0.3// -COPYING.LIB INCLUDEPATH += C://Program Files//Microsoft Visual Studio 10.0//libraries//librtf-0.0.3// #LIBS += -L. C://Program Files//Microsoft Visual Studio 10.0//libraries//librtf-0.0.3// -COPYING.LIB #INCLUDEPATH += C://Program Files//Microsoft Visual Studio 10.0//libraries//librtf-0.0.3// #LIBS += C://Program Files//Microsoft Visual Studio 10.0//libraries//librtf-0.0.3// -copying #LIBS += "C:/Program Files/Microsoft Visual Studio 10.0/libraries/librtf-0.0.3/librtf.lib" #LIBS += "C:/Program Files/Microsoft Visual Studio 10.0/libraries/librtf-0.0.3/COPYING.LIB" #LIBS += "C://Program Files//Microsoft Visual Studio 10.0//libraries//librtf-0.0.3//COPYING.LIB" LIBS += "C://Program Files//Microsoft Visual Studio 10.0//libraries//librtf-0.0.3//copyng.lib" #LIBS += "-LC:/Program Files/Microsoft Visual Studio 10.0/libraries/librtf-0.0.3" -lrtf 

Произвожу сборку у он мне выдает :

 NMAKE:-1: ошибка: U1052: не найден файл "Makefile.Release" NMAKE:-1: ошибка: U1077: "C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe" : возвращенный код "0x2" 

Что делать, как быть .

Опишите-ка, пожалуйста все Ваши условия. В чем собираете свой проект — VS или QtCreator, собрана ли библиотека (можно вывод dir для каталога librtf-0.0.3) .

Собираю в QtCreator , на счет собрана ли библиотека так я открыл фаил и там было написано что все готово, я (в cmd чето потыкал и все и то она команды не понимала) в общем думаю что нет , но я даже не понял надо ли ее в обще собирать.

Как подключить стороннюю библиотеку к проекту Qt через CMake?

Подскажите, пожалуйста, куда и как мне добавить хэдеры и саму библиотеку?
И можно ли каким-то образом обойтись без dll, имея исходный код?
Может быть можно создать подпроект (со своим CMakeLists.txt) и сделать так, чтобы он компилировался, линковался и собирался в библиотеку непосредственно из Qt? (Чтобы можно было поменяв одну команду SHARED на STATIC, менять способ сборки всего основного проекта)

Я прочитал кучу всего в сети, и у меня просто каша в голове, не могу сообразить, что и как сделать =(

  • Вопрос задан более трёх лет назад
  • 1454 просмотра

Комментировать
Решения вопроса 2
Developer, ex-admin

Конечно же в target_link_libraries, просто добавьте имя библиотеки в конце через пробел
Но обычно используют find_package/find_library/pkg_check_modules для того, что бы предварительно определить установлена ли библиотека в системе. А в target_link_libraries добавляют переменные, которые инициализируются этими функциями.
Смотрите: https://cmake.org/cmake/help/latest/genindex.html

Ответ написан более трёх лет назад
Нравится 2 7 комментариев

EgoRusMarch

megorit @EgoRusMarch Автор вопроса

Ну, это то понятно.
Я поместил в каталог проекта каталог с библиотекой. В нём три каталога:
bin с .dll
include с .hpp
lib с чем-то ещё
Мне же ещё нужно хэдеры куда то прописать? И как CMake найдет, где лежит .dll?

Egorithm, target_include_directories — для инклудов
target_link_directories — для задания каталога поиска библиотек
Все операции, которые можно сделать с конкретной целью начинаются на target_
По ссылке масса всего интересного 🙂

Путь указывайте относительно каталога, где лежит текущий CMakeLists.txt. В cmake относительные пути отсчитываются от этого каталога.
Например так: muParserProject/include, если CMakeLists.txt лежит в родительском каталоге muParserProject
В кавычках или без — не принципиально.

Если что текущий каталог (где лежит CMakeLists.txt) лежит в переменной $

Если при вызове cmake задать параметр: -DCMAKE_VERBOSE_MAKEFILE или в самом CMakeLists.txt задать set(CMAKE_VERBOSE_MAKEFILE ON)
то cmake будет печатать на экран весь вывод, в выводе можно увидеть и вызов компилятора с параметрами и там уже можно посмотреть чего не хватает или что что-то не правильно добавилось в аргументы. Полезно для отладки сборки и обучения.

Nipheris

Станислав Макаров @Nipheris Куратор тега C++

А в target_link_libraries добавляют переменные, которые инициализируются этими функциями.

А ещё лучше — таргеты)

Nipheris

Станислав Макаров @Nipheris Куратор тега C++

Вообще это довольно странная библиотека, там генерится targets-файл, но не генерится конфиг-файл.. Как всегда когда дело касается симейка творится какая-то дичь.

EgoRusMarch

megorit @EgoRusMarch Автор вопроса
C++ Developer

  • добавил каталог собранной библиотеки в каталог проекта
  • открыл CMakeLists.txt в своём проекте и дописал:
target_include_directories($ PUBLIC $/path_to_include_dir) target_link_directories($ PUBLIC $/path_to_link_dir) target_link_libraries($ PUBLIC libname)

Подключение сторонних библиотек Qt

Есть у меня библиотека для морфологического разбора текстов. Хочу ее использовать в своем проекте. Имеется:
1) Файлы solarix_grammar_engine.dll, Solarix_Grammar_Engine.lib, набор заголовочных файлов в папке include
2) Проект, в котором хочу использовать классы и методы из этой библиотеки
3) Еще несколько .lib и .dll файлов той же библиотеки, которые в данном проекте пока не задействованы

    В .pro файле прописал
    INCLUDEPATH += «C:/Users/ijustneedadump/Desktop/Tag_FS/include»

HEADERS += widget.h \
include/solarix_grammar_engine.h \
include/_sg_api.h

Как мне подключить библиотеку, причем так, чтобы программа корректно собиралась в release и debug версиях. Что я делаю не так? Использую Qt Creator. Заранее благодарен.

Установка библиотеки Qt

Для работы с библиотекой Qt в Visual Studio необходимо cкачать на официальном сайте Qt. Компилировать проекты, использующие библиотеку Qt можно либо при помощи Visual Studio, либо при помощи Qt Creator.

Для работы с Qt Creator
  • Библиотеку Qt можно скачать на официальном сайте, в разделе Офлайн-инсталляторы Qt. Выбирайте офлайн-инсталлятор Qt 5.5.0 for Windows 32-bit (MinGW 4.9.2, 852 MB).
  • При установке библиотеки Qt нажмите «Skip» для пропуска авторизации Qt Account. При выборе компонентов оставьте выбранным только MinGW 4.9.2 32bit.
  • После завершения установки у вас должны появиться программы: Qt Assistant, Qt Designer, Qt Linguist и Qt Creator.

Работа с Qt Creator

Кодировка русского текста

Для того чтобы избежать проблем с кодировкой, рекомендуется сразу установить кодировку UTF-8 для редактора файлов с кодом у Qt Creator. Для этого необходимо выбрать UTF-8 в списке кодировок:

  • в англоязычной версии Tools->Options->Text Editor->Behavior->File Encoding->Default Encoding
  • в русскоязычной версии Инструменты->Параметры->Текстовый редактор->Поведение->Кодировки->По умолчанию

После этого все файлы cpp и h, которые были ранее созданы в Visual Studio, рекомендуется сконвертировать из Win в UTF-8 перед тем как открывать в Qt Creator.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *