qt5.12 on android,使用SSL和SQL支持构建Qt 5.12 LTS for Android

我无法回复您的所有请求,但我可以说一下openssl:

Firstoff,即使使用Qt 5.12,如果你使用从Qt本身下载的官方android版本(通过Maintenancetool),那么你仍然必须使用gcc工具链和openssl 1.0.2. Qt构建需要1.0.*和clang支持仅从1.1.1开始添加到openssl. Qt 5.13有望支持这个版本的openssl.有关详细信息,请参见QTBUG-71391.

那个说法,如果你自己交叉编译Qt for Android(或者将来访问这篇文章,当Qt支持这个时),你可以使用openssl 1.1并使用clang来编译它.

这些步骤在NOTES.ANDROID中记录在他们的github上.这些步骤相对简单,归结为对PATH进行一些更改以构建库.一个基本脚本,带有Qt提供的所有Android架构的开关,将是:

TOOLCHAIN_VERSION=4.9

HOST_ARCH=linux-x86_64

case "$ANDROID_TARGET_ARCH" in

arm64-v8a)

API_VERSION=21

ARCH_ID=android-arm64

TOOLCHAIN=aarch64-linux-android-$TOOLCHAIN_VERSION

;;

armeabi-v7a)

API_VERSION=16

ARCH_ID=android-arm

TOOLCHAIN=arm-linux-android-$TOOLCHAIN_VERSION

;;

x86)

API_VERSION=16

ARCH_ID=android-x86

TOOLCHAIN=x86-$TOOLCHAIN_VERSION

;;

*)

echo "Unsupported ANDROID_TARGET_ARCH: $ANDROID_TARGET_ARCH"

exit 1

;;

esac

export ANDROID_NDK=/path/to/ndk

export PATH=$ANDROID_NDK/toolchains/llvm/prebuilt/$HOST_ARCH/bin/:$ANDROID_NDK/toolchains/$TOOLCHAIN/prebuilt/$HOST_ARCH/bin:$PATH

./Configure $ARCH_ID shared no-ssl3 -D__ANDROID_API__=$API_VERSION

make SHLIB_VERSION_NUMBER= SHLIB_EXT=.so build_libs

在此脚本中,ANDROID_TARGET_ARCH只是具有相同名称的qmake变量的值,因此qmake可以调用此脚本.需要详细完成的步骤是:

>准备一些变量:

> TOOLCHAIN_VERSION:只需要使用的gcc工具链的版本(是的,这仍然需要,因为仍然使用某些工具,linke ranlib等).从NDK v18开始,工具链版本仍为4.9

> HOST_ARCH:主机系统的体系结构.该示例将此设置为linux.如果你在窗口/ macos上相应地调整它.

> API_VERSION:应该为openssl构建的Android SDK版本.我将值设置为Qt用于这些平台的构建的版本,但其他版本也应该没问题

> ARCH_ID:openssl使用的android体系结构的名称

> TOOLCHAIN:要使用的gcc工具链的名称

>确保将ANDROID_NDK环境变量设置为安装NDK的任何位置

>更新路径以包含clang / llvm工具链和特定平台的gcc工具链.在脚本中,工具链的位置是从先前的变量派生的

>显式运行配置脚本 – 而不是配置.传递目标体系结构和其他标志. (例如,出于安全原因,我更喜欢禁用ssl3)

>运行make来构建库.需要SHLIB_VERSION_NUMBER = SHLIB_EXT = .so部分以确保创建的二进制文件没有版本号作为其名称的一部分,因为android不支持它.

就是这样!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值