Difference between revisions of "Rock3/dev/qt"
(Created page with "{{rock3_header}} {{Languages|rockpi4/dev/devtree_overlays | Common interface with linux-5.10}} ROCK 3 > Development > rock3/dev/qt | rockc...") |
|||
Line 1: | Line 1: | ||
{{rock3_header}} | {{rock3_header}} | ||
− | {{Languages| | + | {{Languages|rock3/dev/qt | Common interface with linux-5.10}} |
− | [[rock3 | ROCK 3]] > [[ | + | [[rock3 | ROCK 3]] > [[rock3/dev | Development]] > [[rock3/dev/qt | rockchip qt]] |
=== porting qt to rockchip platforms === | === porting qt to rockchip platforms === | ||
− | + | ==== tools ==== | |
sudo apt-get install build-essential cmake | sudo apt-get install build-essential cmake | ||
wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz | wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz | ||
Line 12: | Line 12: | ||
− | + | ==== download qt source code ==== | |
mkdir -p pro/qtSourceDir && cd pro/qtSourceDir | mkdir -p pro/qtSourceDir && cd pro/qtSourceDir | ||
wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz | wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz | ||
Line 20: | Line 20: | ||
or you can download them from [[https://download.qt.io/archive/qt/ here]] | or you can download them from [[https://download.qt.io/archive/qt/ here]] | ||
− | + | ==== Cross compilation ==== | |
vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf | vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf | ||
Line 83: | Line 83: | ||
load(qt_config) | load(qt_config) | ||
+ | </pre> | ||
+ | |||
+ | * Create a new automatic configuration script file | ||
+ | vi auto.sh | ||
+ | <pre> | ||
+ | |||
+ | #!/bin/sh | ||
+ | |||
+ | mkdir -p /opt/qtInstallDir | ||
+ | |||
+ | ./configure \ | ||
+ | -prefix /opt/qtInstallDir \ | ||
+ | -confirm-license \ | ||
+ | -opensource \ | ||
+ | -release \ | ||
+ | -make libs \ | ||
+ | -xplatform linux-aarch64-gnu-g++ \ | ||
+ | -pch \ | ||
+ | -qt-libjpeg \ | ||
+ | -qt-libpng \ | ||
+ | -qt-zlib \ | ||
+ | -no-opengl \ | ||
+ | -no-sse2 \ | ||
+ | -no-openssl \ | ||
+ | -no-cups \ | ||
+ | -no-glib \ | ||
+ | -no-dbus \ | ||
+ | -no-xcb \ | ||
+ | -no-separate-debug-info \ | ||
+ | -no-ssl \ | ||
+ | -nomake tests \ | ||
+ | -nomake examples \ | ||
+ | -nomake tools \ | ||
+ | -no-sql-sqlite \ | ||
+ | -no-iconv \ | ||
+ | -skip qt3d \ | ||
+ | -skip qtactiveqt \ | ||
+ | -skip qtcanvas3d \ | ||
+ | -skip qtcharts \ | ||
+ | -skip qtconnectivity \ | ||
+ | -skip qtdatavis3d \ | ||
+ | -skip qtdeclarative \ | ||
+ | -skip qtgamepad \ | ||
+ | -skip qtandroidextras \ | ||
+ | -skip qtdoc \ | ||
+ | -skip qtwebchannel \ | ||
+ | -skip qtwebengine \ | ||
+ | -skip qtwebglplugin \ | ||
+ | -skip qtwebview \ | ||
+ | -skip qtvirtualkeyboard \ | ||
+ | -recheck | ||
+ | |||
+ | |||
+ | make | ||
+ | make install | ||
+ | </pre> | ||
+ | |||
+ | sudo chmod +x auto.sh | ||
+ | sudo ./auto.sh | ||
+ | |||
+ | * after success you can see | ||
+ | |||
+ | <pre> | ||
+ | test@test-desktop:/opt$ ls qtInstallDir/ | ||
+ | bin doc include lib mkspecs plugins translations | ||
</pre> | </pre> |
Revision as of 06:22, 5 May 2023
ROCK 3 > Development > rockchip qt
Contents
porting qt to rockchip platforms
tools
sudo apt-get install build-essential cmake wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz -C /usr/local/
download qt source code
mkdir -p pro/qtSourceDir && cd pro/qtSourceDir wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz tar -xvf qt-everywhere-src-5.12.2.tar.xz cd .. wget https://download.qt.io/archive/qt/5.12/5.12.2/qt-opensource-linux-x64-5.12.2.run or you can download them from [here]
Cross compilation
vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf
Before modification
# # qmake configuration for building with aarch64-linux-gnu-g++ # MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = aarch64-linux-gnu-gcc QMAKE_CXX = aarch64-linux-gnu-g++ QMAKE_LINK = aarch64-linux-gnu-g++d QMAKE_LINK_SHLIB = aarch64-linux-gnu-g++ # modifications to linux.conf QMAKE_AR = aarch64-linux-gnu-ar cqs QMAKE_OBJCOPY = aarch64-linux-gnu-objcopy QMAKE_NM = aarch64-linux-gnu-nm -P QMAKE_STRIP = aarch64-linux-gnu-strip load(qt_config)
After modification
# # qmake configuration for building with aarch64-linux-gnu-g++ # MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib QT_QPA_DEFAULT_PLATFORM = linuxfb QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc QMAKE_CXX = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ QMAKE_LINK = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ QMAKE_LINK_SHLIB = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ # modifications to linux.conf QMAKE_AR = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs QMAKE_OBJCOPY = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy QMAKE_NM = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P QMAKE_STRIP = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip load(qt_config)
- Create a new automatic configuration script file
vi auto.sh
#!/bin/sh mkdir -p /opt/qtInstallDir ./configure \ -prefix /opt/qtInstallDir \ -confirm-license \ -opensource \ -release \ -make libs \ -xplatform linux-aarch64-gnu-g++ \ -pch \ -qt-libjpeg \ -qt-libpng \ -qt-zlib \ -no-opengl \ -no-sse2 \ -no-openssl \ -no-cups \ -no-glib \ -no-dbus \ -no-xcb \ -no-separate-debug-info \ -no-ssl \ -nomake tests \ -nomake examples \ -nomake tools \ -no-sql-sqlite \ -no-iconv \ -skip qt3d \ -skip qtactiveqt \ -skip qtcanvas3d \ -skip qtcharts \ -skip qtconnectivity \ -skip qtdatavis3d \ -skip qtdeclarative \ -skip qtgamepad \ -skip qtandroidextras \ -skip qtdoc \ -skip qtwebchannel \ -skip qtwebengine \ -skip qtwebglplugin \ -skip qtwebview \ -skip qtvirtualkeyboard \ -recheck make make install
sudo chmod +x auto.sh sudo ./auto.sh
- after success you can see
test@test-desktop:/opt$ ls qtInstallDir/ bin doc include lib mkspecs plugins translations