本文介绍如何快速在Linux设备通过源码编译Openssl 。
如果您需要在x86虚拟机为arm嵌入式设备交叉编译openssl,这篇文章非常适合您。
此外,您即将用于执行编译的平台应有 gcc、make 工具。
文章目录
一 获取源码
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2h.tar.gz
二 解压
tar xvf openssl-1.0.2h.tar.gz
三 编译步骤
3.1 进入OpenSSL工作目录
cd openssl-1.0.2h
3.2 创建文件夹 build
用于存放编译后的OpenSSL
mkdir build
3.3 静态库
3.3.1 配置-静态库
./config no-asm \
no-shared \
--prefix=$(pwd)/build \
-openssldir=$(pwd)/build/ssl \
--cross-compile-prefix=
注意
若需使用指定编译器,应指定CROSS-COMPILE,即按如下示例配置
./config no-asm \
no-shared \
--prefix=$(pwd)/build \
-openssldir=$(pwd)/build/ssl \
--cross-compile-prefix=/work/toolchain/arm-gcc/bin/arm-linux-gnueabihf-
3.3.2 编译-静态库
make
3.3.3 安装-静态库
make install
3.4 动态库
3.4.1 配置-动态库
./config no-asm \
shared \
--prefix=$(pwd)/build \
-openssldir=$(pwd)/build/ssl \
--cross-compile-prefix=
注意
若需使用指定编译器,应指定CROSS-COMPILE,即按如下示例配置
./config no-asm \
shared \
--prefix=$(pwd)/build \
-openssldir=$(pwd)/build/ssl \
--cross-compile-prefix=/work/toolchain/arm-gcc/bin/arm-linux-gnueabihf-
3.4.2 编译-动态库
make
3.4.3 安装-动态库
make install
四 验证 OpenSSL 是否被正确编译
4.1 查看文件目录 tree -d
root@scapeak:~/work/openssl-1.0.2h/build# tree -d
.
├── bin
├── include
│ └── openssl
├── lib
│ ├── engines
│ └── pkgconfig
└── ssl
├── certs
├── man
│ ├── man1
│ ├── man3
│ ├── man5
│ └── man7
├── misc
└── private
15 directories
4.2 验证OpenSSL版本 ./openssl version
root@scapeak:~/work/openssl-1.0.2h/build/bin# ./openssl version
OpenSSL 1.0.2h 3 May 2016
root@scapeak:~/work/openssl-1.0.2h/build/bin#