Как подключить «стороннюю» библиотеку в 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 чето потыкал и все и то она команды не понимала) в общем думаю что нет , но я даже не понял надо ли ее в обще собирать.
Как подключить библиотеку dll в QtCreator?
Я умею подключать lib и os либы, но не получается подключить dll
подскажите как это правильно сделать?
и как это инклудить в коде?
- Вопрос задан более трёх лет назад
- 2068 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 2
Senior software engineer (C++/Qt/boost)
Если имеется ввиду qmake (*.pro файл), то:
LIBS *= "path_to_dll" INCLUDEPATH *= "path_to_headers"
Ну а в коде просто иклюдить как обычно после этого.
С CMake проектами будет иначе. К слову, скоро Qt официально перейдёт на CMake.
Ответ написан более трёх лет назад
Нравится 1 23 комментария

Ася @asyaevloeva Автор вопроса
оно не работает через libs потому что пишет что-то типа cannot open file ‘..\my_library.lib’
как сделать чтобы искался не .lib файл, а .dll ?
Ася, Если вы покажете полный код, то будет замечательно.

Ася @asyaevloeva Автор вопроса
Vitaly, по сути я просто хочу запустить этот проект с библиотекой openbabel, но никак не могу ее подключить/правильно скомпилировать, поэтому взяла dll отсюда 0.3.0-windows-dynamic.zip
Ася, Вообще у него https://github.com/timvdm/Molsketch вот тут корневой CMakeLists.txt лежит. Его и надо использовать для сборки.
Система сборки проекта не qmake, а CMake. Вам нужно иметь где-то в системе установленный CMake.
Вот тут есть установочник openbabel для винды: https://sourceforge.net/projects/openbabel/files/o.
Не забудьте установить заголовочники и добавить всё в system path. Там галочки должны быть соответствующие.
После этого система сборки должна всё сама найти.

Ася @asyaevloeva Автор вопроса
Vitaly, у меня не получается его использовать для сборки, потому что там требуется qt4, а у меня походу qt5:
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/FindQt4.cmake:1326 (message): Found unsuitable Qt version "5.6.2" from C:/Anaconda/envs/my-rdkit-env/Library/bin/qmake.exe, this code requires Qt 4.x Call Stack (most recent call first): CMakeLists.txt:61 (find_package)
Ася, Следовательно, надо установить ещё и Qt4. О чём напрямую написано в логе:
«this code requires Qt 4.x». Т.е. с Qt5 код просто не соберётся, или не будет корректно работать.
Всегда читайте логи, там много полезной информации.

Ася @asyaevloeva Автор вопроса
Vitaly, ну поэтому я и хотела из qtcreqtor именно собирать, потому что я исправила функции qt4 которые не поддерживаются qt5
Ася, Дело в том, что QtCreator — это всего лишь IDE. Она может запустить систему сборки, но не более того. Требования к процессу сборки прописаны в файле (который, к слову, можно открыть с помощью QtCreator): https://github.com/timvdm/Molsketch/blob/master/CM.
Просто поменяйте:
find_package(Qt4 REQUIRED) на find_package(Qt5 REQUIRED)
Ну и возможно ещё тут: set(QT_MIN_VERSION «4.5.0»)
И этот файл тоже поменять придётся (там немного больше поменять придётся. ): https://github.com/timvdm/Molsketch/blob/master/mo.
И поверьте, это будет быстрее и проще, чем переписывать всё на qmake.
Ася, В общем, если вам не хочется тратить реально много времени, то проще собрать с Qt4.

Ася @asyaevloeva Автор вопроса
Vitaly, я скачала установила qt4 qt-win-opensource-4.8.5-vs2010.exe и добавила путь в Path, но CMake все равно пытается сбилдить с помощью qt5
Ася, Нужно явно указать с каким qt’ом собирать:
-DCMAKE_PREFIX_PATH=»path_to_qt\lib\cmake»
Правда не уверен, работает ли это с qt4, но всё равно попробуйте. Только удостоверьтесь сначала, есть ли у вас в системе что-нибудь по этому пути path_to_qt\lib\cmake.

Ася @asyaevloeva Автор вопроса
Vitaly, что нужно прописать в cmake файл чтобы нашелся openbabel2?
The C compiler identification is MSVC 19.23.28106.4 The CXX compiler identification is MSVC 19.23.28106.4 Check for working C compiler: D:/vs/visual_studio/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe Check for working C compiler: D:/vs/visual_studio/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe -- works Detecting C compiler ABI info Detecting C compiler ABI info - done Detecting C compile features Detecting C compile features - done Check for working CXX compiler: D:/vs/visual_studio/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe Check for working CXX compiler: D:/vs/visual_studio/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe -- works Detecting CXX compiler ABI info Detecting CXX compiler ABI info - done Detecting CXX compile features Detecting CXX compile features - done Unit testing enabled, run make test to run them Looking for Q_WS_X11 Looking for Q_WS_X11 - not found Looking for Q_WS_WIN Looking for Q_WS_WIN - found Looking for Q_WS_QWS Looking for Q_WS_QWS - not found Looking for Q_WS_MAC Looking for Q_WS_MAC - not found Found Qt4: C:/Qt/4.8.5/bin/qmake.exe (found suitable version "4.8.5", minimum required is "4.5.0") Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) CMake Error at cmake/modules/FindOpenBabel2.cmake:74 (message): Could NOT find OpenBabel2 Call Stack (most recent call first): CMakeLists.txt:64 (find_package) Configuring incomplete, errors occurred! See also "D:/progs/Molsketch-master/Molsketch-master/build8/CMakeFiles/CMakeOutput.log". See also "D:/progs/Molsketch-master/Molsketch-master/build8/CMakeFiles/CMakeError.log".
Ася, На самом деле, ничего. Там уже всё есть. Он должен быть установлен у вас в системе и быть во всех путях.

Ася @asyaevloeva Автор вопроса
Vitaly, я установила разные версии openbabel в разные папки, скачала разархивовала его с гитхаба и кажется уже все сделала но оно все равно не работает

Ася @asyaevloeva Автор вопроса

Vitaly,

Ася @asyaevloeva Автор вопроса

Vitaly,
Как добавить библиотеку в qt creator?
Собрался изучать opengl (книга — learn opengl) и когда дело дошло до создания проекта возникла проблема.
Как и было указано в книге, я с помощью cmake собрал библиотеку GLFW из исходников, а вот как подключить её к проекту qt creator (система сборки cmake) не знаю. Порылся в интернетах, но безрезультатно.
ОС — manjaro linux
- Вопрос задан более двух лет назад
- 530 просмотров
Комментировать
Решения вопроса 1
Developer, ex-admin
Что в пакетах библиотеки нет? Я бы установил библиотеку из пакетов. Обычно для использования библиотеки в своей программе вам требуется так же и ее dev пакет.
Обычно приличные библиотеки ставят в своем dev пакете и средства для поиска/использования себя. В линуксе это обычно конфигурационный файл для pkg-config. В cmake использовать pkg-config можно с помощью одноименного модуля.
Если библиотека поддерживает cmake, то она ставит поисковые скрипты для find_package.
Ответ написан более двух лет назад
Нравится 2 2 комментария
Sour_Lemon @Sour_Lemon Автор вопроса
Спасибо за наводку. В итоге в CMakeLists я добавил эти строки:
find_package(PkgConfig REQUIRED) pkg_check_modules(GLFW REQUIRED glfw3) target_link_libraries(testing $) target_include_directories(testing PUBLIC $) target_compile_options(testing PUBLIC $)
Не уверен, что всё сделано правильно, но оно работает)
Sour_Lemon, Похоже, что все правильно.
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Qt Creator
Как настроить отладчик?
- 1 подписчик
- 25 окт.
- 8 просмотров

- C++
- +3 ещё
C++ CMake Как исправить ошибку?
- 2 подписчика
- 16 окт.
- 121 просмотр
Как подключить библиотеку к Qt 5.4?
Куда их пихать, чтобы они заработали? Что где прописывать?
Версия Qt 5.4.
Вот вам надо использовать чужую библиотеку, хотите ее подключить. Ваши действия?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как подключить библиотеку Qt?
пишу #include <QtGui>, а он мне — "no such file or directory".
Как подключить библиотеку на Mac OS?
Компилирую g++. Нужно в main.cpp включить QString. Подключаю QtCore.framework опцией -lQtCore.
Как подключить библиотеку MPI в Qt?
Хочу подключить библиотеку MPI для Qt. В интернете есть гайд как это делается для MVS.
Как подключить библиотеку в Qt Creator (ubuntu)
Добрый день! Скачал htmlcxx-0.84.tar.gz — это вроде как библиотека для парсинга HTML. .
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
Сообщение от [progeR] 
Вот вам надо использовать чужую библиотеку, хотите ее подключить. Ваши действия?
Смотрю есть ли расширение cmake, для этой либы, если нет, то пишу сам.
Далее прописываю find_package, include_directories и линковку.
Регистрация: 20.08.2011
Сообщений: 615
Сообщение от Dmitriy_M 
Смотрю есть ли расширение cmake, для этой либы, если нет, то пишу сам.
Далее прописываю find_package, include_directories и линковку.
Не знаю что такое cmake и зачем это нужно.
А дальше. Что в проекте в pro файле, других файлах писать?
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
[progeR], какой pro файл? Я не пользуюсь pro файлами.
Поклонник Qt
314 / 210 / 41
Регистрация: 09.11.2013
Сообщений: 336
Записей в блоге: 1
Сообщение от [progeR] 
Вот вам надо использовать чужую библиотеку, хотите ее подключить. Ваши действия?
В большинстве случаев, хватает мастера добавления библиотек в проект.
Т.е. выбираем в дереве проектов свой проект, вызываем контекстное меню и выбираем «Добавить библиотеку», далее выбираем интересующие пункты соответствующие вашей библиотеке.
При условии, что вы работаете с Qt Creator’ом.
Регистрация: 20.08.2011
Сообщений: 615
Хм, ну вроде Qt подразумевает QtCreator.
Сообщение от CriDos 
Т.е. выбираем в дереве проектов свой проект, вызываем контекстное меню и выбираем «Добавить библиотеку», далее выбираем интересующие пункты соответствующие вашей библиотеке.
При условии, что вы работаете с Qt Creator’ом.
Дык не работает!
Вот только что скачал проект библиотеки libssh (https://red.libssh.org/attachm. -mingw.zip).
Далее скопировал следующие скаченные файлы в папку libssh в корень проекта:
1. две dll из папки bin;
2. все заголовочные файлы .h из папки include/libssh;
3. два файла библиотеки .a из папки lib.
Использовал «Добавить библиотеку» для: windows + динамическое связывание + внешняя.
Сделал инклуд .h файла. Записал код. Приложение умирает при запуске, даже окно не отображается.
Добавлено через 4 минуты
Также попробовал сделать то же самое для библиотек, заточенных под Qt. (можно найти на ГитХубе). Собрал их в QtCreator. Подключил — ой, работает! О_О
Только разница в том, что эти библиотеки можно собрать в режиме «Отладка» и «Релиз». И получить на выходе в два раза больше dll и a файлов, половина из которых содержит суффикс «d».
В «Добавить библиотеку» поставить флаг для добавления этого суффикса.
Добавлено через 45 секунд
А что делать с «незаточенными» под Qt?