Как подключить «стороннюю» библиотеку в 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 комментариев

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 Куратор тега C++
А в target_link_libraries добавляют переменные, которые инициализируются этими функциями.
А ещё лучше — таргеты)

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

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.