|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Статическая сборка Qt6 |
|
C/C++ - Статическая сборка Qt6
|
![]() Пользователь Сообщения: 55 |
Всем привет. Занялся сборкой Qt6 из исходного кода, но в процессе сталкиваюсь с очередными проблемами.
Что было установлено: 1. Ruby - возможно, сам по себе не нужен, но и лишним не будет. А установлен был из-за наличия MSYS64, из которого был установлен mingw-w64-x86_64-toolchain (GCC версии 14.2.0). 2. Ninja и Cmake. 3. Python и библиотека html5lib. 4. Скачал исходник qt-everywhere-src-6.8.1.tar.xz с официального сайта. Как оказалось, дополнительно желательны: libclang, WinRT и Perl. Новое веселье. И именно тут возникли новые заминки. Расскажу по порядку: Библиотеки libclang скачал также с сайта Qt (архив libclang-llvmorg-19.1.1-windows-mingw_64.7z) и распаковал в тот же каталог, где исходники. Вопрос: а нужны ли там dll-ки libclang*? На всякий взял их от ранее скачанного Clang и поместил их в "bin". Но после завершения конфигурирования такой отчёт: "WARNING: LLVM was found, but it was not built with RTTI support" А что не так? Скачаны с сайта Qt, а значит должны быть совместимы. Это что, получается, "libclang" не пригодится, а понадобится скачать ещё и исходники Clang и из них собирать целиком компилятор? Я не знаю, критично ли это, важно ли это, но хотелось бы НЕ столкнуться с сюрпризами при разработке приложений в дальнейшем. WinRT. Поскольку я не мог скачать готовый, то пришлось попробовать скомпилировать из исходников. Но в процессе возникли не известные ошибки: FAILED: test/test/CMakeFiles/test-vanilla.dir/missing_required_interfaces.cpp.obj C:\Ruby32-x64\msys64\mingw64\bin\c++.exe -D_WIN32_WINNT=0x0602 -IC:/cppwinrt/test -IC:/cppwinrt/test/../cppwinrt -IC:/cppwinrt/build/test/cppwinrt -O3 -DNDEBUG -std=gnu++20 -mcx16 -Winvalid-pch -include C:/cppwinrt/build/test/test/CMakeFiles/test-vanilla.dir/cmake_pch.hxx -MD -MT test/test/CMakeFiles/test-vanilla.dir/missing_required_interfaces.cpp.obj -MF test\test\CMakeFiles\test-vanilla.dir\missing_required_interfaces.cpp.obj.d -o test/test/CMakeFiles/test-vanilla.dir/missing_required_interfaces.cpp.obj -c C:/cppwinrt/test/test/missing_required_interfaces.cpp C:/cppwinrt/test/test/missing_required_interfaces.cpp:5:10: fatal error: winrt/test_component.h: No such file or directory 5 | #include <winrt/test_component.h> Если размер у WinRT небольшой (без тестовой папки!), не могли бы вы поделиться, если таковой у вас есть? Perl. Вроде бы он не нужен для сборки последних Qt, но желателен для отдельных компонентов. Но его наличие также создавало другие проблемы. Во-первых, он уже поставляется с компиляторами, но не самых последних версий, отчего у меня процесс сборки завершался с ошибкой. Я временно переименовал его директорию и компиляция работала. Но мне не давало покоя, что он может быть нужен, и переименовал обратно, и я удалил папку с его компиляторами, а всё остальное оставил. После этого, хоть и конфигурирование проходило успешно, сборка же завершалась ошибкой, ссылаясь на zlib почему-то. Как оказалось, возникало при вызове syncqt.exe (в build\qtbase\bin). Попытка запустить syncqt.exe завершалось сообщением: "Точка входа в процедуру _ZNKSt25__codecvt_utf8_utf16_baselwE10do_unshiftERiPcS2_RS2_ не найдена в библиотеке DLL C:\qt-everywhere-src-6.8.1\build\qtbase\bin\syncqt.exe." Я удалил Perl и это как-то помогло: syncqt теперь запускается без ошибки. Аналогичное было с exe-шником от WinRT. Python и html5lib. Не смотря на их наличие, они почему-то не обнаружены. Ладно если с qtwebengine я смирился, так как статически его не собрать, но кроме него и qdoc игнорируется. В переменных средах Python есть. Что не так? Как проходит компиляция. Из созданной папки "build" я выполняю: cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_BUILD_STATIC=ON -DCPPWINRT_INCLUDE_DIR=C:/cppwinrt -DLLVM_INSTALL_DIR=C:/qt-everywhere-src-6.8.1/libclang -DINPUT_opengl=desktop -DQT_SYSTEM_zlib=ON -DQT_SYSTEM_png=OFF -DQT_SYSTEM_jpeg=OFF -DBUILD_EXAMPLES=OFF -DQT_BUILD_QTWEBENGINE=OFF -DFEATURE_clang=ON -S .. После нескольких минут запускаю просто: cmake --build . (либо с --parallel, без разницы). А ради чего вся эта пляска: мне нужен Qt6 в static. Я понимаю, что его наверняка можно получить целиком в том же MSYS64, но у меня кое-какие проблемы с его скачиванием (детали рассказывать не хочу). Вкратце повторю: 1. Хочу решить проблему с Python и html5lib; 2. Установить готовый WinRT; 3. Perl... Возможно ли установить или настроить, чтобы компиляция и запуск некоторых exe-файлов не завершалось ошибкой? 4. Хотел ещё рекомендаций, может что-то лишнее указал или наоборот чего-то не добавил. |
|
Отправлено: 15:02, 09-01-2025 |
Deadooshka Сообщения: 2555
|
Профиль | Отправить PM | Цитировать в MSYS2 всё ставится через pacman вместе со всеми зависимостями. Вручную скачивается отсюда https://packages.msys2.org/packages/ из нужного репозитория https://packages.msys2.org/base/mingw-w64-cppwinrt
|
Отправлено: 07:31, 10-01-2025 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Сборка ПК | thepowerofnow | Выбор отдельных компонентов компьютера и конфигурации в целом | 8 | 05-11-2020 07:55 | |
Сборка компьютера | Mademan | Выбор отдельных компонентов компьютера и конфигурации в целом | 18 | 22-04-2017 02:54 | |
Сборка? | rabbitmaniac | Непонятные проблемы с Железом | 5 | 12-04-2013 20:07 | |
Сборка 7 | warikkk | Хочу все знать | 8 | 14-03-2013 18:45 | |
2008 - Статическая маршрутизация в Windows server 2008. | byshido84 | Windows Server 2008/2008 R2 | 5 | 09-03-2010 20:05 |
|