openssl交叉编译给android使用

交叉编译openssl需要在linux下编译。先下载ndk安装,下载openssl源码。然后执行如下命令编译。

#ndk安装根目录

export ANDROID_NDK_ROOT=/mnt/e/ndk/android-ndk-r14b

#openssl代码根目录

OPENSSL_DIR=/mnt/e/openssl/openssl-3.0.1

cd $OPENSSL_DIR
rm -rf ./output
mkdir ./output

#设置编译的目标cpu类型,编译其他cpu类型的修改这两个参数

ARCH_NAME=android-arm
TOOL_CHAIN=arm-linux-androideabi-4.9

export PATH=$ANDROID_NDK_ROOT/toolchains/$TOOL_CHAIN/prebuilt/linux-x86_64/bin:$PATH
./Configure android-arm shared no-ssl2 no-ssl3 no-asm no-comp no-hw no-engine -D__ANDROID_API__=23 --openssldir=$OPENSSL_DIR/output --prefix=$OPENSSL_DIR/output

make -j8

编译报错解决:

1. 汇编指令.rodata不识别

crypto/ec/ecp_nistz256-armv4.S: Assembler messages:
crypto/ec/ecp_nistz256-armv4.S:9: Error: unknown pseudo-op: `.rodata'
make[1]: *** [Makefile:15166: crypto/ec/libcrypto-lib-ecp_nistz256-armv4.o] Error 1

解决办法:./Configure选项加上no-asm,表示不使用汇编

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于使用 OpenSSL 进行交叉编译,你需要在目标平台上配置交叉编译工具链,并确保正确设置相关的环境变量。以下是一个大致的步骤: 1. 下载 OpenSSL 的源代码:从 OpenSSL 的官方网站(https://www.openssl.org/)下载最新的源代码包,并将其解压到一个适当的目录。 2. 配置交叉编译工具链:根据你的目标平台,配置交叉编译工具链。这通常包括交叉编译器、交叉编译的库以及头文件等。确保工具链正确安装并可用。 3. 设置环境变量:根据你的交叉编译工具链,设置以下环境变量: - `CC`:指定交叉编译器的路径和名称。 - `CROSS_COMPILE`:如果需要,设置交叉编译前缀。例如,如果你的交叉编译器是 arm-linux-gcc,则设置为 `arm-linux-`。 - `AR`:指定交叉编译器的静态库归档程序的路径和名称。 - `RANLIB`:指定交叉编译器的静态库索引生成程序的路径和名称。 4. 运行配置脚本:在 OpenSSL 的源代码目录中,运行以下命令来配置 OpenSSL 的编译选项: ``` ./Configure <target> --prefix=<installation_path> --cross-compile-prefix=<cross_compile_prefix> ``` 其中 `<target>` 是要交叉编译的目标平台,`<installation_path>` 是安装 OpenSSL 的路径,`<cross_compile_prefix>` 是交叉编译前缀(如果有)。 5. 编译和安装:运行以下命令来编译和安装 OpenSSL: ``` make make install ``` 这将编译 OpenSSL 并安装到指定的安装路径中。 请注意,这只是一个大致的步骤概述,具体步骤可能因你的目标平台和工具链而有所不同。你还需要根据实际情况进行调整和解决可能出现的问题。请参考 OpenSSL 的官方文档以获得更多详细信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值