一、编译前工作

        进入下载页面: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,通过终端进入构建目录。

二、编译安装

1、常规编译

默认编译动态库,例如:

./../openssl-1.1.1k/config no-asm --prefix=/opt/openssl-1.1.1k-ubuntu-x64

如果要编译静态库则需要加上选项:no-shared,例如:

./../openssl-1.1.1k/config no-asm no-shared --prefix=/opt/openssl-1.1.1k-ubuntu-x64

        配置成功后,输入命令:make,成功后,输入命令:make install,即可把openssl库安装到目录:/opt/openssl-1.1.1k-ubuntu-x64

2、交叉编译

注意: 这里不使用config(它是给主机架构编译用的,它会默认添加-m64选项,针对x86_64架构,无法正确处理aarch64交叉编译,aarch64架构不需要-m64,本身就是64位),而是使用Configure
选项说明:

  • linux-aarch64:告诉 OpenSSL 目标是 aarch64 架构,自动禁用 -m64x86_64 专属选项。

默认编译动态库,例如:

./../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- \
--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- \
--prefix=/opt/openssl-1.1.1k-arm

        打开终端,输入命令:make,成功后,输入命令:make install,即可把openssl库安装到目录:/opt/openssl-1.1.1k-arm

三、环境配置

        设置环境变量,编辑/etc/profile文件,末尾添加:

export OPENSSL_ROOT=/opt/openssl-1.1.1k-ubuntu-x64
# 运行依赖
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路径,指定为当前的库路径
Logo

更多推荐