Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Статическая сборка Qt6

Ответить
Настройки темы
C/C++ - Статическая сборка Qt6

Аватара для RubenRBN

Пользователь


Сообщения: 55
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Всем привет. Занялся сборкой 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>
Тем не менее, файлик cppwinrt.exe появился, но не уверен, что этого достаточно.
Если размер у 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
Благодарности: 697

Профиль | Отправить PM | Цитировать


в MSYS2 всё ставится через pacman вместе со всеми зависимостями. Вручную скачивается отсюда https://packages.msys2.org/packages/ из нужного репозитория https://packages.msys2.org/base/mingw-w64-cppwinrt
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:31, 10-01-2025 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Статическая сборка Qt6

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Сборка ПК 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




 
Переход