一、编译前工作
进入下载页面:https://www.openssl.org/source,下载.tar.gz包到指定目录。例如:下载openssl-1.1.1k.tar.gz并解压到/home/jaron/workspace/openssl-1.1.1k。
在父目录创建构建目录,例如:/home/jaron/workspace/openssl-1.1.1k-build,通过终端进入构建目录。
注意:这里不使用config(它是给主机架构编译用的,它会默认添加-m64选项,针对x86_64架构,无法正确处理aarch64交叉编译,aarch64架构不需要-m64,本身就是64位),而是使用Configure,
默认编译动态库,例如:
./../openssl-1.1.1k/Configure \
linux-aarch64 \
no-asm \
CROSS_COMPILE=/home/crosstool/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi- \
AR=ar \
CC=gcc \
CXX=g++ \
RANLIB=ranlib \
--prefix=/opt/openssl-1.1.1k-arm
如果要编译静态库则需要加上选项:no-shared,例如:
./../openssl-1.1.1k/Configure \
linux-aarch64 \
no-asm \
no-shared \
CROSS_COMPILE=/home/crosstool/sysroots/x86_64-oesdk-linux/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi- \
AR=ar \
CC=gcc \
CXX=g++ \
RANLIB=ranlib \
--prefix=/opt/openssl-1.1.1k-arm
在编译过程中如果出现如下错误:
Can't locate FindBin.pm in @INC (you may need to install the FindBin module) (@INC contains: /home/jaron/tools/ec20/crosstool/sysroots/x86_64-oesdk-linux//usr/lib/perl/5.20.0 /home/jaron/crosstool/sysroots/x86_64-oesdk-linux/ /usr/lib/perl /home/jaron/crosstool/sysroots/x86_64-oesdk-linux//usr/lib/perl/5.20.0 /home/jaron/crosstool/sysroots/x86_64-oesdk-linux/ /usr/lib/perl/site_perl/5.20.0 /home/jaron/crosstool/sysroots/x86_64-oesdk-linux//usr/lib/perl/vendor_perl/5.20.0 /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/perl/site_perl/5.20.0/ /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/perl/site_perl/5.20.0 /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/perl/vendor_perl/5.20.0/ /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/perl/vendor_perl/5.20.0 /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/perl/5.20.0/ /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/perl/5.20.0 /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/perl/5.20.0 .) at ./../openssl-1.1.1k/Configure line 15.
解决办法:切换至root权限,再重新配置。
二、编译安装
配置成功后,修改Makefile文件,查找到-m64并删除。

打开终端,输入命令:make,成功后,输入命令:make install,即可把openssl库安装到目录:/opt/openssl-1.1.1k-arm。
三、环境配置
设置环境变量,编辑/etc/profile文件,末尾添加:
export OPENSSL_ROOT=/opt/openssl-1.1.1k-arm
# 运行依赖
export OPENSSL_CONF=$OPENSSL_ROOT/ssl/openssl.cnf
export LD_LIBRARY_PATH=$OPENSSL_ROOT/lib:$LD_LIBRARY_PATH
# 开发依赖
export PATH=$OPENSSL_ROOT/bin:$PATH
export CPATH=$OPENSSL_ROOT/include:$CPATH
export LIBRARY_PATH=$OPENSSL_ROOT/lib:$LIBRARY_PATH
export PKG_CONFIG_PATH=$OPENSSL_ROOT/lib/pkgconfig:$PKG_CONFIG_PATH # 需要同步修改pkgconfig目录下libcrypto.pc、libssl.pc、openssl.pc文件中的prefix路径,指定为当前的库路径
本文详细介绍了如何从源码编译安装 OpenSSL 1.1.1k 版本,包括编译前的准备工作、配置选项、编译安装过程及环境变量设置,适用于嵌入式系统开发者。
1685

被折叠的 条评论
为什么被折叠?



