Linux 平台下搭建 Qt For Android 交叉编译环境

前言

Qt for android 的编译环境网上的教程大多是 Windows 平台下的,或者是 Linux 下通过 Qt Creator 进行搭建。这样以后的编译或者发布都是手动进行的,因需要搭建自动化发布环境,git 提交完代码之后,自动进行编译,编译完成后发布。现将 命令行 搭建 Qt for android 环境的方法记述如下:

设备信息

Debian X64 6GB ROM E5(分配四核心)
以上环境需要大约两小时

1. 系统准备

apt update
apt upgrade
apt install unzip
apt install clang
apt install g++
apt install make

2. 下载文件

  1. JDK (OpenJDK 8 (LTS)、HotPot、Linux、X64) https://adoptopenjdk.net/releases.html?variant=openjdk8&jvmVariant=hotspot
  2. Gradle 7.0 https://downloads.gradle-dn.com/distributions/gradle-7.0-bin.zip
  3. android command line tools (Linux) https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
  4. Qt 5.12.3 源代码 https://download.qt.io/official_releases/qt/5.12/5.12.3/single/qt-everywhere-src-5.12.3.tar.xz

3. 创建文件夹

cd /opt
mkdir Qt4Android
cd Qt4Android/

4.将上述下载的四个文件夹复制到刚创建的 Qt4Android 目录下

5.解压

unzip commandlinetools-linux-6858069_latest.zip
unzip gradle-7.0-bin.zip
tar -zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u282b08.tar.gz
tar -xvf qt-everywhere-src-5.12.3.tar.xz

6.安装

/*java*/
export JAVA_HOME=/opt/Qt4Android/jdk8u282-b08/
export PATH=$JAVA_HOME/bin:$PATH

/*gradle*/
export PATH=$PATH:/opt/Qt4Android/gradle-7.0/bin

/*android*/
mkdir androidSDK
cd /opt/Qt4Android/cmdline-tools/bin/
./sdkmanager --sdk_root=/opt/Qt4Android/androidSDK --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk;21.3.6528147"

/*Qt*/
cd /opt/Qt4Android/
mkdir QtAndroidBulid
cd /opt/Qt4Android/qt-everywhere-src-5.12.3/qtbase/mkspecs/android-clang/
vim qmake.conf

//找到 QMAKE_LINK 所在行在最后加上 -nostdlib++ ,接下来的过程可能需要 1-3 小时或更久视硬件配置而定

cd /opt/Qt4Android/qt-everywhere-src-5.12.3/
./configure -xplatform android-clang -prefix /opt/Qt4Android/QtAndroidBulid/ -disable-rpath -nomake tests -nomake examples -android-ndk /opt/Qt4Android/androidSDK/ndk/21.3.6528147 -android-sdk /opt/Qt4Android/androidSDK/ -no-warnings-are-errors
make -j4
make install

记得执行以下代码测试一下安装的正确性

java -version
gradle -v

若编译成功,可将上述四个压缩包,以及解压出来的 qt-everywhere-src-5.12.3 文件夹删除

7.编译测试

我们将test 项目放到 /opt/temp/test/ 文件夹下

cd /opt/temp/Test/
/opt/Qt4Android/QtAndroidBulid/bin/qmake Test.pro
make -j4
mkdir androidDir
make install INSTALL_ROOT=/opt/temp/Test/androidDir/
/opt/Qt4Android/QtAndroidBulid/bin/androiddeployqt --input android-libTest.so-deployment-settings.json --output androidDir/ android-29 --jdk /opt/Qt4Android/jdk8u282-b08/ --gradle

若看到 BULID SUCCESS,即可在文件夹 /opt/temp/Test/androidDir/build/outputs/apk/debug/ 下看到安装文件

你可能感兴趣的:(Linux 平台下搭建 Qt For Android 交叉编译环境)