Как устранить ошибки несовместимости архитектуры при сборке Qt из исходного кода в Windows 10?C++

Программы на C++. Форум разработчиков
Anonymous
Как устранить ошибки несовместимости архитектуры при сборке Qt из исходного кода в Windows 10?

Сообщение Anonymous »

Я пытаюсь установить Qt на свой ноутбук с Windows 10. Изначально я загрузил онлайн-установщик и использовал его для получения Qt и Qt Creator, но мне не удалось добавить нужный мне плагин: QtSQL: mysql.
Поэтому теперь я изменил Чтобы попытаться собрать исходный код, я использую тег v6.8.0-beta1 для загрузки исходного кода. Мне это нужно было для того, чтобы получить init-repository.bat, чтобы я мог использовать среду сборки Windows.
Поэтому я попытался заставить это работать, у меня есть настройка среды: CMake, Ninja, MSVC 2022, MSVC 2019 и MinGW. MinGW взят с GitHub — niXman — mingw-builds-binaries — выпуск 13.2.0-rt_v11-rev1; Файл x86_64-13.2.0-release-win32-seh-msvcrt-rt_v11-rev0.7z. Это дало мне версию 13.2.0 для MinGW.
Я также настроил MSVC 2022 и 2019 с amd64, поэтому у них есть среда сборки x64.
Для сборки я выполнил следующую команду:

Код: Выделить всё

git clone --branch v6.8.0-beta1 code.qt.io/qt/qt5.git Qt
Тогда:

Код: Выделить всё

configure -init-submodules
Когда я пытаюсь запустить cmake --build, как с --parallel, так и без него, выдает следующую ошибку:

Код: Выделить всё

C:\Qt>cmake --build .
[26/11645] Linking CXX executable qtbase\bin\syncqt.exe
FAILED: qtbase/bin/syncqt.exe
C:\Windows\system32\cmd.exe /C "cd . && C:\MinGW\bin\c++.exe -DNDEBUG -O3 -fexceptions  qtbase/src/tools/syncqt/CMakeFiles/syncqt.dir/syncqt_resource.rc.obj qtbase/src/tools/syncqt/CMakeFiles/syncqt.dir/main.cpp.obj qtbase/src/tools/syncqt/CMakeFiles/syncqt.dir/syncqt_longpath.rc.obj -o qtbase\bin\syncqt.exe -Wl,--out-implib,qtbase\src\tools\syncqt\libsyncqt.dll.a -Wl,--major-image-version,0,--minor-image-version,0  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: i386 architecture of input file `qtbase/src/tools/syncqt/CMakeFiles/syncqt.dir/syncqt_resource.rc.obj' is incompatible with i386:x86-64 output
C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: i386 architecture of input file `qtbase/src/tools/syncqt/CMakeFiles/syncqt.dir/syncqt_longpath.rc.obj' is incompatible with i386:x86-64 output
collect2.exe: error: ld returned 1 exit status
[43/11645] Building C object qtbase/src/3rdparty/libjpeg/CMakeFiles/BundledLibjpeg.dir/jdhuff.c.obj
ninja: build stopped: subcommand failed.
Как заставить драйвер Qt mysql работать либо с бета-сборкой, либо с любым другим способом работы в Windows 10 x64?
Предыдущие попытки :
  • Изначально я загрузил из онлайн-установщика qt 6.7.2. Я пытался инициализировать драйверы MySQL разными способами, сначала через коннектор MySQL C++. Это не сработало, я пытался сделать это с помощью драйвера Qt SQL, но это не сработало, потому что по какой-то причине, возможно, потому, что Qt\----\mingw\plugins\sqldrivers был пуст.
    Я попробовал еще раз с версией 6.5.3, но все равно не помогло.
  • Я попробовал с версией 6.6.3 и На этот раз sqldrivers не был пустым. Инициализация MySQL после C:\Qt\6.0.0\Src\configure.bat -sql-mysql -- -DMySQL_INCLUDE_DIR="C:\mysql-8.0.22-winx64\include" -DMySQL_LIBRARY="C:\mysql -8.0.22-winx64\lib\libmysql.lib" работало, но затем процесс сборки не работал независимо от того, какой MinGW я использовал.
  • В следующий раз я сделал это из исходный код версии 6.6.0. init-repository с perl и сборка снова не работали.
После этого я подумал, что это может быть из-за среде, поэтому я попытался сделать это без Perl, который есть только в ветке dev и в v6.8.0-beta1, который содержит init-repository.bat, который, как я думал, мог быть решения моих проблем, поскольку в другом сообщении я обнаружил, что perl имеет свою собственную среду. И затем я здесь после того, как убедился, что у меня есть подходящая базовая среда, или я так предполагаю.

Подробнее здесь: https://stackoverflow.com/questions/787 ... rom-source

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