Как подкючить библиотеку [muParser] к Qt?

101
19 февраля 2022, 14:20

Мне нужно будет подключить библиотеку muParser (GitHub) к Qt Creator.

Проблема в том, что я не до конца понимаю, как это сделать, потому что:

  1. Её нужно устанавливать через консоль через файл configure (на Linux).
  2. Там содержатся файлы настроек (makefiles).

Если бы там были просто хэдеры и исходники, то это одно, а тут я не знаю. Никогда этого не делал. Подскажите пожалуйста, как это сделать, где об этом можно подробно прочитать?

Мне нужно собрать проект так, чтобы на другом устройстве его можно было скомпилировать из проекта без дополнительных установок (ну то есть из Qt Creator).

Answer 1

Есть разные вариант.

Тот, который описан в Install.txt используется для непосредственно сборки. По этой инструкции ты можешь собрать файлы .so, взять их и папку include. В своём CMakeList.txt указываешь:

target_include_directories(${PROJECT_NAME} PUBLIC <путь до папки include>)
link_directories(${PROJECT_NAME} <Путь до папки с библиотеками>)
target_link_libraries(${PROJECT_NAME} PUBLIC muParserProject)

Только не делай во этого: make install, есть лучшие способы установки пакетов. Почитай про checkinstall или похожее.

Второй вариант - добавить папку в проект и в CMakeList.txt добавить add_subdirectory(muParserProject)

Конечно это всё, если ты используешь cmake для сборки. Если нет (qmake или что-то другое), то варианты примерно похожие - (1) собрать и добавить пути до include и библиотек (https://stackoverflow.com/questions/718447/adding-external-library-into-qt-creator-project) или (2) добавить в проект (возможно придётся переписать CMakeList.txt в формате твоего сборщика) чтобы собирался во время сборки твоего проекта.

Answer 2

Для подключения к проекту qmake библиотеки, как набора исходников, распакуйте .zip и впишите в .pro файл:

SOURCES      *= D:/libs/muparser-2.2.6.1/src/*.cpp
HEADERS      *= D:/libs/muparser-2.2.6.1/include/*.h
INCLUDEPATH  *= D:/libs/muparser-2.2.6.1/include
DEFINES *= MUPARSER_STATIC

Второй вариант - собрать .dll или .lib и подключать уже их. Понадобится CMake. Собрать можно примерно такой командой (указав свой компилятор и путь к папке, куда ты хочешь установить библиотеку):

cmake -LAH -G "Visual Studio 14 2015" -DCMAKE_INSTALL_PREFIX=D:/libs/muparser
cmake --build . --config Release --target install

После сборки и установки, в своем .pro файле указываешь:

INCLUDEPATH  *= D:/libs/muparser/include
LIBS *= D:/libs/muparser/lib/muparser.lib

Также, перед запуском в переменную окружения PATH нужно будет добавить D:\libs\muparser\bin чтобы программа могла найти muparser.dll (либо скопировать muparser.dll в папку со своим исполняемым файлом).

READ ALSO
Не удается подключиться к бд

Не удается подключиться к бд

Пишу в LinuxНеобходимо подключиться к Access бд,но Qtговорит что нет такого драйвера QODBC, хотя в предложенных он имеется

213
Найти кратчайший путь [закрыт]

Найти кратчайший путь [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

81
Вывести содержимое массива улиткой в данном порядке (может быть четным и нечетным)

Вывести содержимое массива улиткой в данном порядке (может быть четным и нечетным)

Массив может быть четным и нечетным, но всегда квадратным, вывести необходимо в данном порядке, как изображено на изображении))

85
Как считать одномерный массив из файла?

Как считать одномерный массив из файла?

Программа должна считывать массив из файла и отсортировать значения по возрастаниюКакие функции/классы можно использовать для считывания...

249