使用clang编译openssl1.1.1d

使用clang编译openssl1.1.1d

openssl下载地址

https://www.openssl.org/source/openssl-1.1.1d.tar.gz

ndk要使用r19以上

ndk各个 版本的下载地址

https://blog.csdn.net/u011077027/article/details/102706283

使用clang编译 要设置ANDROID_API>=21,配置ndk的路径,如果需要编译其他平台的,只需要修改architecture的值

shell脚本

#!/bin/bash
set -e
set -x

# Set directory
SCRIPTPATH=/root/openssl
export ANDROID_NDK_HOME=/root/android/android-ndk-r20
export OPENSSL_DIR=/root/openssl/openssl-1.1.1d

# Find the toolchain for your build machine
toolchains_path=${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64

# Configure the OpenSSL environment, refer to NOTES.ANDROID in OPENSSL_DIR
# Set compiler clang, instead of gcc by default
CC=clang

# Add toolchains bin directory to PATH
PATH=$toolchains_path/bin:$PATH

# Set the Android API levels
ANDROID_API=21

# Set the target architecture
# Can be android-arm, android-arm64, android-x86, android-x86 etc

outdir=armeabi-v7a
architecture=android-arm

# Create the make file
cd ${OPENSSL_DIR}

make clean

./Configure ${architecture} -D__ANDROID_API__=$ANDROID_API


#./config no-ssl2 no-ssl3 no-comp no-hw no-engine \
#--openssldir=$(pwd)/../out/$ANDROID_API \
#--prefix=$(pwd)/../out/$ANDROID_API


# Build
make

# Copy the outputs
OUTPUT_INCLUDE=$SCRIPTPATH/output/include
OUTPUT_LIB=$SCRIPTPATH/output/lib/${outdir}
mkdir -p $OUTPUT_INCLUDE
mkdir -p $OUTPUT_LIB
cp -RL include/openssl $OUTPUT_INCLUDE
cp libcrypto.so $OUTPUT_LIB
cp libcrypto.a $OUTPUT_LIB
cp libssl.so $OUTPUT_LIB
cp libssl.a $OUTPUT_LIB

参数定义

安装参数:
--openssldir=OPENSSLDIR
安装目录,默认是 /usr/local/ssl

--prefix=PREFIX
设置 lib include bin 目录的前缀,默认为 OPENSSLDIR 目录。
--install_prefix=DESTDIR
设置安装时以此目录作为"根"目录,通常用于打包,默认为空。

zlib
zlib-dynamic
no-zlib
使用静态的zlib压缩库、使用动态的zlib压缩库、不使用zlib压缩功能。

threads
no-threads
是否编译支持多线程的库。默认支持。

shared
no-shared
是否生成动态连接库。

asm
no-asm
是否在编译过程中使用汇编代码加快编译过程。

enable-sse2
no-sse2
启用/禁用SSE2指令集加速。如果你的CPU支持SSE2指令集,就可以打开,否则就要关闭。

gmp
no-gmp
启用/禁用GMP库

rfc3779
no-rfc3779
启用/禁用实现X509v3证书的IP地址扩展

krb5
no-krb5
启用/禁用 Kerberos 5 支持

ssl
no-ssl

ssl2
ssl3
no-ssl2
no-ssl3

tls
no-tls
启用/禁用 SSL(包含了SSL2/SSL3) TLS 协议支持。

dso
no-dso
启用/禁用调用其它动态链接库的功能。[提示]no-dso仅在no-shared的前提下可用。

代码收录

https://github.com/ddssingsong/AnyNdk

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ddssingsong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值