Там, где я сейчас нахожусь, кажется, что это так. по какой-то причине не могу найти несколько символов в библиотеке 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
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'
C:\Users\Aidan Beecher\Desktop\Qt Projects\TestMuParser\libs\muparser\include\muParser.h:50: error: undefined reference to `__imp__ZTVN2mu6ParserE'
Error while building\deploying project TestMuParser (kit
Как уже говорилось ранее, по какой-либо причине не удалось найти несколько символов библиотеки 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
Мобильная версия