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

Как подключить стороннюю библиотеку в 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 чето потыкал и все и то она команды не понимала) в общем думаю что нет , но я даже не понял надо ли ее в обще собирать.

Как подключить библиотеку 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

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

оно не работает через libs потому что пишет что-то типа cannot open file ‘..\my_library.lib’

как сделать чтобы искался не .lib файл, а .dll ?

Ася, Если вы покажете полный код, то будет замечательно.

asyaevloeva

Ася @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

Ася @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

Ася @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

Ася @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

Ася @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

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

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

asyaevloeva

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

5da5e3aaa6db7351425514.png

Vitaly,

asyaevloeva

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

5da5e3f3df98b662849012.png

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

  • Qt Creator

Как настроить отладчик?

  • 1 подписчик
  • 25 окт.
  • 8 просмотров

cpp

  • 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?

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

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