Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: coder-ex от Февраль 29, 2016, 16:13



Название: Сборка Qt5 под Linux x64 для Linux x32
Отправлено: coder-ex от Февраль 29, 2016, 16:13
Приветствую!
Есть Linux Ubuntu х64, установлен компилятор g++. В системе доступно две архитектуры amd64 и i386. Нужно собрать два комплекта Qt5 для х64 и х32. Первый комплект для платформы х64 собрал без проблем. А вот со вторым для платформы х32 проблема. При конфигурировании комплекта получаю остановку с ошибкой:
Цитировать
Running configuration tests...
Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set.
Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set.

Could not determine the target architecture!
Turn on verbose messaging (-v) to see the final report.
SQLite support cannot be enabled due to functionality tests!
 Turn on verbose messaging (-v) to /home/kkw/develop/src/qt-everywhere-opensource-src-5.4.2/qtbase/configure to see the final report.
 If you believe this message is in error you may use the continue
 switch (-continue) to /home/kkw/develop/src/qt-everywhere-opensource-src-5.4.2/qtbase/configure to continue.

Не понятно какой путь нужно прописать в PKG_CONFIG_LIBDIR и PKG_CONFIG_SYSROOT_DIR, файла pkg-config не могу найти, где он должен лежать.
SQLite у меня установлен, но похоже он для x64 платформы, его наверное нужно доставить для i386?
Ниже скрипт для сборки:

Код
Bash
######################################################################
#!/bin/sh
# Защита от попыток использовать не объявленные переменные
set -o nounset
######################################################################
 
local _DirPath="$HOME/develop"                #каталог для разработки
local _LibBuild='qt5-x64-linux-shared'       #каталог установки Qt5
local _CatBuild='build-qt5-x64-linux-shared' #каталог для сборки
local _ToolsName='linux-g++'                 #компилятор
 
#Проверим на существование каталога для сборки
CheckCatalog "$_DirPath/src/$_CatBuild"
if [[ $? -eq 0 ]];
then
  mkdir $_DirPath/src/$_CatBuild
fi
cd $_DirPath/src/$_CatBuild
 
export QT5DIR=$_DirPath/src/$_CatBuild &&
export QT5LINK=$_DirPath/stuff/$_LibBuild &&
 
$_DirPath/src/configure -prefix $_DirPath/stuff/$_LibBuild \
                                         -debug \
                                         -release \
                                         -confirm-license \
                                         -opensource \
                                         -opengl desktop \
                                         -openssl-linked \
                                         -qt-libpng \
                                         -qt-libjpeg \
                                         -system-zlib \
                                         -system-sqlite \
                                         -plugin-sql-sqlite \
                                         -skip webkit \
                                         -optimized-qmake \
                                         -silent \
                                         -xplatform linux-g++-32 -device-option CROSS_COMPILE=$_ToolsName \
                                      2>&1 | tee configure.log___________
 
make -k -j5 2>&1 | tee build.log___________
make -k -j5 install 2>&1 | tee install.log___________
 
echo "Bye-Bye $USER"
exit 0
######################################################################
 

Помогите разобраться с проблемой, буду рад готовому скрипту если есть.


Название: Re: Сборка Qt5 под Linux x64 для Linux x32
Отправлено: qate от Февраль 29, 2016, 22:23
под убунтой не собирал, а под сусей без проблем (опции configure уточню завтра)
под убунтой както иначе сделаны i386 пакеты, я не разобрался, не хотел
еще под убунтой я не смог собрать для венды сборку, ихний реп для mingw куцый по сравнению с opensuse
а если sqlite не нужен, то и не собирай его


Название: Re: Сборка Qt5 под Linux x64 для Linux x32
Отправлено: coder-ex от Март 01, 2016, 06:57
под убунтой не собирал, а под сусей без проблем (опции configure уточню завтра)
под убунтой както иначе сделаны i386 пакеты, я не разобрался, не хотел
еще под убунтой я не смог собрать для венды сборку, ихний реп для mingw куцый по сравнению с opensuse
а если sqlite не нужен, то и не собирай его


Я под Linux для Windows собирал ради эксперимента, а потом понял, что вся таки проще поставить гостевую ОС Windows и на ней писать то что нужно :) Все равно ведь придется запускать ради проверок тех или иных алгоритмов, которые в отладчике Linux недоступны, код под целевой платформой. Если нужно то могу скинуть ссылку на мануалы по которым собирал все.
А SQLite мне необходим, это бесплатная и легкая БД, я ее использую в своих приложениях. Да и проще ее собирать под статику чем монстра PostgreSQL.


Название: Re: Сборка Qt5 под Linux x64 для Linux x32
Отправлено: qate от Март 01, 2016, 09:36
на данный момент я собираю под 32 битной ОС - только 32 битную сборку, вот конфигурация:

pr="/home/user1/bin/qt551_linux32"
src=/home/user1/src/qt-everywhere-opensource-src-5.5.1
$src/configure -v -confirm-license -opensource  -qt-xcb -qt-zlib -qt-pcre \
-skip webengine -skip websockets -skip webchannel -skip webkit -skip webkit-examples -no-dbus \
-no-compile-examples -nomake examples -qt-zlib -qt-libpng -qt-libjpeg -openssl-linked -no-qml-debug -release -qt-freetype -v \
--prefix=$pr 2>&1 | tee conf_run_log551

да, ранее собирал 32 бита по 64 битной ОС, но скрипт утерял
пока вспоминаю, выложи полный лог от configure

ну собственно отличие в добавлении флага -xplatform linux-g++-32


Название: Re: Сборка Qt5 под Linux x64 для Linux x32
Отправлено: coder-ex от Март 01, 2016, 09:54
на данный момент я собираю под 32 битной ОС - только 32 битную сборку, вот конфигурация:

pr="/home/user1/bin/qt551_linux32"
src=/home/user1/src/qt-everywhere-opensource-src-5.5.1
$src/configure -v -confirm-license -opensource  -qt-xcb -qt-zlib -qt-pcre \
-skip webengine -skip websockets -skip webchannel -skip webkit -skip webkit-examples -no-dbus \
-no-compile-examples -nomake examples -qt-zlib -qt-libpng -qt-libjpeg -openssl-linked -no-qml-debug -release -qt-freetype -v \
--prefix=$pr 2>&1 | tee conf_run_log551

да, ранее собирал 32 бита по 64 битной ОС, но скрипт утерял
пока вспоминаю, выложи полный лог от configure
Да собственно то же самое и на arm64 для нее же, только конфигурация отличается. Этот вариант у меня собрался. Вопрос вот в этом arm64 для i386 (х64 для х32), тут как раз собака и порылась...
У меня вот вопрос в тулчейне, правильный я назначил или нет?
Пока вангую :) результаты выложу обязательно.