Qt 6.2 static build (Linux). Статическая сборка Qt 6.2 (Ubuntu, Debian, Linux Mint)

1. Необходимо установить свежую версию cmake sudo apt install cmake или sudo snap install cmake --classic

или с официального сайта https://cmake.org/download/ При установке сайта через *.sh или из архива *.tar.gz необходимо создать ссылку на cmake из вашего каталога в каталог /usr/bin/:

sudo ln -s /ваш-путь/cmake/1035/bin/cmake /usr/bin/cmake

2. Скачиваем архив исходников Qt для Linux (qt-everywhere-src-6.2.4.tar.xz) с официального сайта https://download.qt.io/official_releases/qt/6.2/6.2.4/single/qt-everywhere-src-6.2.4.tar.xz

3. Создаем каталог, например, «/home/user/Qt/Qt6.2.4-x64-linux-gcc-static/src/» и распаковываем в него содержимое архива исходников и переходим в него

cd /home/user/qt/qt6.2.4-x64-static/src

2. Чтобы при ./configure не получить ошибку отсутствия libclangBasic.a устанавливаем:

sudo apt install libclang-dev

3. Запуск ./configure

./configure -platform linux-g++-64 -static -release -opensource -confirm-license -skip qtwebengine -prefix /home/user/qt/qt6.2.4-x64-linux-gcc-static

4. Сборка

cmake --build . --parallel 4

где 4 - число потоков для сборки. Ни в коем случае не используйте флаг --parallel без цифр, иначе получите бесконечный рост потребления памяти с последующим зависанием ОС.

5. Установка

cmake --install .

Протестированные ОС: Ubuntu 20.04, Debian 11.2, Linux Mint 20.3, Linux Mint LMDE 5.0

22
4 комментария

Пункт 4 не выполняется - "Error: could not load cache".
Попытка запустить "cmake ." говорит, что нужен документ "CMakeLists.txt", взять который неоткуда.
Нипонятна. Но в целом инструкция хорошая.
З.Ы. После пункта 3 (конфигурации) консоль выводит подсказку о том, что теперь нужно просто запустить "gmake" и больше ничего не делать, однако сборка заканчивается с ошибкой ("Error 2"). Отмечу, что в винде сборка статического Qt также заканчивается с ошибками, однако всё работает корректно. Нипонятна2.

1
Ответить

Дополню предыдущий комментарий:
3. выполнить "./configure -platform linux-g++ -release -static -fontconfig -opensource -confirm-license" из каталога /src
4. выполнить "gmake"
Готово. Так работает. Не знаю, почему с указанной на этом сайте конфигурацией ничего не работает; возможно, указывать в конце (пункт 3) полный путь - ошибка, но кто знает.

1
Ответить

Fedora 37
Пытаюсь собрать Qt6 - 6.4.0 из исходников.
При запуске ./configure выдает следующее:

Can't locate English.pm in @INC (you may need to install the English module) (@INC
contains: /usr/local/lib64/perl5/5.36 /usr/local/share/perl5/5.36
/usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5
/usr/share/perl5) at
/home/****/Development/Qt/Static/6.4.0/Src/qtbase/libexec/syncqt.pl line 19.

как с этим бороться?

1
Ответить

К сожалению под Fedor-у не собирал

Ответить