====== Компиляция Qt с поддержкой SGX на AM335x ====== //Все действия выполнялись на Ubuntu 12.04.4 LTS// ===== Компилятор ===== Вы можете использовать следующие компиляторы: * Arago Dynamic toolchain based on GCC 4.5.3 for all devices (supplied with AMSDK releases) * Linaro 4.7.3 hardfp toolchain (arm-linux-gnueabihf-) Данные инструкции были выполнены с компилятором Linaro 4.7.3 hardfp toolchain wget https://releases.linaro.org/13.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz tar xf gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz ===== Зависимости ===== ==== SGX библиотека ==== Обязательно выполните действия, описанные на этой странице: [[usomiq-sgx]] ==== tslib ==== Если вам нужна поддержка tslib (touchscreen, сенсорные экраны) в приложениях, то сначала выполните действия, описанные на этой странице: [[tslib-arm]] ===== Исходники ===== Скачайте исходные тексты библиотеки Qt 4.8.6 wget http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz Распакуйте их: tar xf qt-everywhere-opensource-src-4.8.6.tar.gz Теперь надо применить исправления, чтобы компиляция была без ошибок: cd qt-everywhere-opensource-src-4.8.6 wget http://mentorel.ru/downloads/qt/qt-4.8.6_1.patch wget http://mentorel.ru/downloads/qt/qt-4.8.6_2.patch wget http://mentorel.ru/downloads/qt/qt-4.8.6_3.patch patch -p1 < qt-4.8.6_1.patch patch -p1 < qt-4.8.6_2.patch patch -p1 < qt-4.8.6_3.patch ===== Компиляция ===== Для кросс-компиляции с поддержкой SGX необходимо добавить соответствующую конфигурацию wget http://mentorel.ru/downloads/qt/linux-TIarmv7-sgx-g++.tgz Распакуем конфигурацию cd mkspecs/qws/ tar xf linux-TIarmv7-sgx-g++.tgz Теперь необходимо внести исправления в файл конфигурации, чтобы файл соответствовал локальным путям на вашем компьютере. Откройте файл 'linux-TIarmv7-sgx-g++/qmake.conf' и правильно настройте следующие переменные (остальную часть файла менять не требуется) #User specific Path - To Be edited by User QT_INSTALL_DIR = $$PWD/../../../ SGX_SDK_ROOT = /home/maxx/Graphics_SDK_4_10_00_01/ TSLIB_INCDIR = /media/vmdisk/Projects/qt_sgx/tslib/build/include TSLIB_LIBDIR = /media/vmdisk/Projects/qt_sgx/tslib/build/lib CC_TOOLCHAIN = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin * SGX_SDK_ROOT - полный путь к Graphics_SDK, инструкции по компиляции здесь [[usomiq-sgx]] * TSLIB_INCDIR - полный путь к 'include' директории библиотеки tslib ([[tslib-arm]]) * TSLIB_LIBDIR - полный путь к 'lib' директории библиотеки tslib ([[tslib-arm]]) * CC_TOOLCHAIN - полный путь к исполняемым файлам компилятора Теперь настроим конфигурацию перед компиляцией: ./configure -prefix /opt/qt4.8.6 -embedded arm -platform qws/linux-x86-g++ \ -xplatform qws/linux-TIarmv7-sgx-g++ -depths 16,24,32 -no-mmx -no-3dnow -no-sse \ -no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl \ -no-gtkstyle -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-linuxinput -plugin-mouse-linuxtp \ -plugin-mouse-pc -fast -opengl es2 -qt-gfx-transformed -qt-gfx-vnc -qt-gfx-linuxfb \ -qt-gfx-multiscreen -qt-mouse-tslib -plugin-gfx-powervr -D QT_NO_QWS_CURSOR \ -D QT_QWS_CLIENTBLIT -opensource -confirm-license -no-pch -no-sql-ibase \ -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 \ -no-webkit -no-qt3support ===== Установка ===== Установка библиотек, утилит и всего, что было собрано в ходе компиляции будет выполнена по пути, указанного в ''./configure ... -prefix /opt/qt4.8.6 ...'' То есть, в данном примере установка будет в директорию "/opt/qt4.8.6". Для установки в директорию '/opt' выполните команду sudo make install Если вы хотите выполнить установку в домашнюю директорию, то права суперпользователя не потребуются и поэтому достаточно выполнить команду make install ===== Проверка ===== Для включения поддержки OpenGLES ускорения для Qt приложений выполните следующий код на подмонтированной файловой системе, в которой будет Qt приложение: # cat >> /etc/powervr.ini << _EOF [hellogl_es2] WindowSystem=libpvrQWSWSEGL.so.1 [animatedtiles] WindowSystem=libpvrQWSWSEGL.so.1 _EOF