Проблема с использованием MuParser в проекте Qt Creator для C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблема с использованием MuParser в проекте Qt Creator для C++

Сообщение Anonymous »

Я пытаюсь включить MuParser в свой проект Qt Creator, но уже довольно долго пытаюсь заставить его работать правильно.
Там, где я сейчас нахожусь, кажется, что это так. по какой-то причине не могу найти несколько символов в библиотеке MuParser, и я не совсем уверен, что с этим делать. Есть ли у кого-нибудь идеи, что я могу сделать, чтобы решить эту проблему?
Я загрузил исходный код в виде ZIP-файла с официального сайта. После извлечения содержимого я добавил в папку каталог «build». В MSYS2 MINGW64 я запускал
cd (path to muparser folder)/build
cmake .. -DENABLE_SAMPLES=ON -DENABLE_OPENMP=ON -DENABLE_WIDE_CHAR=OFF -DBUILD_SHARED_LIBS=OFF
make

из каталога сборки. В результате была создана статическая библиотека "libmuparser.a".
Я добавил этот файл вместе с заголовками в папку моего проекта в следующей файловой структуре:
(Project File)->libs->muparser->lib->libmuparser.a
(Project File)->libs->muparser->include->(MuParser Header Files)

Затем в свой файл .pro я добавил
INCLUDEPATH += $$PWD/libs/muparser/include
LIBS += -L$$PWD/libs/muparser/lib -lmuparser

Однако при попытке собрать проект я получаю следующие сообщения об ошибках:
collect2.exe:-1: error: ld returned 1 exit status
C:/Qt/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: debug/main.o: in function `qMain(int, char**)':
C:/Qt/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: debug/main.o: in function `mu::Parser::~Parser()':
collect2.exe: error: ld returned 1 exit status
C:\Users\Aidan Beecher\Desktop\Qt Projects\TestMuParser\main.cpp:16: error: undefined reference to `__imp__ZN2mu6ParserC1Ev'
:-1: error: C:\Users\Aidan Beecher\Desktop\Qt Projects\TestMuParser\build\Desktop_Qt_6_7_2_MinGW_64_bit-Debug/../../main.cpp:17: undefined reference to `__imp__ZN2mu10ParserBase9DefineVarERKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEPd'
:-1: error: C:\Users\Aidan Beecher\Desktop\Qt Projects\TestMuParser\build\Desktop_Qt_6_7_2_MinGW_64_bit-Debug/../../main.cpp:18: undefined reference to `__imp__ZN2mu10ParserBase7SetExprERKNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE'
:-1: error: C:\Users\Aidan Beecher\Desktop\Qt Projects\TestMuParser\build\Desktop_Qt_6_7_2_MinGW_64_bit-Debug/../../main.cpp:20: undefined reference to `__imp__ZNK2mu10ParserBase4EvalEv'
C:\Users\Aidan Beecher\Desktop\Qt Projects\TestMuParser\libs\muparser\include\muParser.h:50: error: undefined reference to `__imp__ZTVN2mu6ParserE'
:-1: error: C:\Users\Aidan Beecher\Desktop\Qt Projects\TestMuParser\build\Desktop_Qt_6_7_2_MinGW_64_bit-Debug/../../libs/muparser/include/muParser.h:50: undefined reference to `__imp__ZN2mu10ParserBaseD2Ev'
:-1: error: [Makefile.Debug:72: debug/TestMuParser.exe] Error 1
Error while building\deploying project TestMuParser (kit:-1: Desktop Qt 6.7.2 MinGW 64-bit)

Как уже говорилось ранее, по какой-либо причине не удалось найти несколько символов библиотеки MuParser, хотя я не редактировал ни один из файлов заголовков в том виде, в каком они были загружены. Может ли это быть проблемой со сборкой libmuparser.a?
РЕДАКТИРОВАТЬ: было предложено удалить предыдущее обновление с моими дополнительными ошибками и найти команду связывания, которая вызвала мои первоначальные ошибки. Хотя я не вижу ни одной команды с точной формой /some/path/x86_64-w64-mingw32-g++ -o debug/TestMuParser.exe..., я вижу несколько похожих строк. Являются ли какие-либо из них командой компоновщика? В частности, первая строка четвертого поля ниже выглядит так, как будто это команда компоновщика.
C:/Qt/Tools/mingw1120_64/bin/mingw32-make -f Makefile.Debug

mingw32-make[1]: Entering directory 'C:/Users/Aidan Beecher/Desktop/Qt
Projects/TestMuParser/build/Desktop_Qt_6_7_2_MinGW_64_bit-Debug'

g++ -c -fno-keep-inline-dllexport -g -std=gnu++1z -Wall -Wextra -Wextra -fexceptions -mthreads -
DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -
DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../../TestMuParser -I. -
I../../libs/muparser/include -IC:/Qt/6.7.2/mingw_64/include -
IC:/Qt/6.7.2/mingw_64/include/QtWidgets -IC:/Qt/6.7.2/mingw_64/include/QtGui -
IC:/Qt/6.7.2/mingw_64/include/QtCore -Idebug -I. -IC:/VulkanSDK/1.3.290.0/include -
IC:/Qt/6.7.2/mingw_64/mkspecs/win32-g++ -o debug\main.o ..\..\main.cpp

g++ -Wl,-v -Wl,-subsystem,windows -mthreads -o debug\TestMuParser.exe debug/main.o
debug/mainwindow.o debug/moc_mainwindow.o -L"C:\Users\Aidan Beecher\Desktop\Qt
Projects\TestMuParser\libs\muparser\lib" -lmuparser C:\Qt\6.7.2\mingw_64\lib\libQt6Widgets.a
C:\Qt\6.7.2\mingw_64\lib\libQt6Gui.a C:\Qt\6.7.2\mingw_64\lib\libQt6Core.a -lmingw32
C:\Qt\6.7.2\mingw_64\lib\libQt6EntryPoint.a -lshell32


Подробнее здесь: https://stackoverflow.com/questions/792 ... ject-for-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»