ubuntun18.04下ndkr22b编译GMSSL库

本文介绍了如何在 Ubuntu 18.04 系统下使用 Android NDK r22b 编译 GMSSL 库,包括修改Android API版本,配置编译脚本config_system.sh和build_gmssl.sh,以及执行编译命令以生成针对不同架构的静态库文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    由于项目需求需要升级ndk13到ndk22b,在升级过程中编译GMSSL库遇到的一些问题在此做一个分享。
    首先明确ndk22b已经不再支持gnustl_shared,gnustl_static编译方式,目前只支持c++_static,c++_shared,支持的安卓应用不得低于android-24,编译GMSSSL需要使用clang编译器。

其编译脚本:
文件config_system.sh内容:

      #!/bin/bash
TOOLS_ROOT=`pwd`
ARCHS=("android" "android-armeabi" "android64-aarch64" "android-x86" "android64" "android-mips" "android-mips64")
ABIS=("armeabi" "armeabi-v7a" "arm64-v8a" "x86" "x86_64" "mips" "mips64")
# Default to API 21 for it is the minimum requirement for 64 bit archs.
ANDROID_API=${ANDROID_API:-24}
NDK=${ANDROID_NDK}

configure() {
   
  ARCH=$1; OUT=$2; CLANG=${
   3:-""};

  TOOLCHAIN_ROOT=${TOOLS_ROOT}/${OUT}-android-toolchain

  if [ "$ARCH" == "android" ]; then
    export ARCH_FLAGS="-mthumb"
    export ARCH_LINK=""
    export TOOL="arm-linux-androideabi"
    NDK_FLAGS="--arch=arm"
  elif [ "$ARCH" == "android-armeabi" ]; then
    export ARCH_FLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -mfpu=neon"
    export ARCH_LINK="-march=armv7-a -Wl,--fix-cortex-a8"
    export TOOL="arm-linux-androideabi"
    NDK_FLAGS="--arch=arm"
  elif [ "$ARCH" == "android64-aarch64" ]; then
    export ARCH_FLAGS=""
    export ARCH_LINK="
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值