目录

一、编译环境

1.1 openssl版本

1.2 下载openssl源码

1.3 交叉编译器:arm-linux-gnueabihf  

二、安装安装 arm-linux-gnueabihf 交叉编译器

2.1 交叉编译器源码下载

2.2 交叉编译器安装

2.3安装相关库

2.4 交叉编译器验证

三、交叉编译openssl-arm静态库与动态库

3.1 相关配置

3.2 make depend

3.3 make编译

3.4 编译结果

 3.5 拷贝ssl、crypto静态库和动态库

3.6 也可以将openssl 安装至配置过的目录中


一、编译环境

1.1 openssl版本

版本:openssl1.0.0s

1.2 下载openssl源码

wget https://www.openssl.org/source/openssl-1.0.0s.tar.gz

1.3 交叉编译器:arm-linux-gnueabihf  

版本: arm-linux-gnueabihf-gcc  -v   

gcc 版本 5.5.0 (Linaro GCC 5.5-2017.10)

二、安装安装 arm-linux-gnueabihf 交叉编译器

2.1 交叉编译器源码下载

Linaro Releaseshttps://releases.linaro.org/components/toolchain/binaries/

链接中很多种交叉编译器,我们只需要关注这两种: gcc-linaro-5.5.0-2017.10-i686_arm-linux-gnueabihf.tar.tar.xz 和 gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz,第一个是针对 32 位系统的,第二个是针对 64 位系统的。大家根据自己所使用的 Ubuntu 系统类型选择合适的版本,比如我安装的 Ubuntu 18.04 是 64 位系统,因此我要使用 gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz。 Linaro Releaseshttps://releases.linaro.org/components/toolchain/binaries/5.5-2017.10/arm-linux-gnueabihf/

2.2 交叉编译器安装

将下载的 gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz 拷贝到Ubuntu中

在Ubuntu中创建目录arm,如有已有就不需要了

sudo mkdir /usr/local/arm

将刚刚拷贝的 gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz拷贝到arm目录中

sudo cp gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f

 拷贝完成以后在/usr/local/arm 目录中对交叉编译工具进行解压,解压命令如下:

sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

等待解压完成,解压完成以后会生成一个名为“gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-
gnueabihf”的文件夹,这个文件夹里面就是我们的交叉编译工具链。

修改环境变量,使用 VI 打开/etc/profile 文件,命令如下:

sudo vi /etc/profile

打开/etc/profile 以后,在最后面输入如下所示内容:

export PATH=$PATH:/usr/local/arm/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin

修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了。

2.3安装相关库

在使用交叉编译器之前还需要安装一下其它的库,命令如下:

sudo apt-get install lsb-core lib32stdc++6

等待这些库安装完成。

2.4 交叉编译器验证

首先查看一下交叉编译工具的版本号,输入如下命令:

arm-linux-gnueabihf-gcc -v

如果交叉编译器安装正确的话就会显示版本号,如下图所示:

从图中可以看出当前交叉编译器的版本号为 5.5.0,说明交叉编译工具链安装成功。

三、交叉编译openssl-arm静态库与动态库

3.1 相关配置

./config no-asm shared --prefix=/home/hanhui/krtcode/local/openssl/arm_openssl_gnuea --cross-compile-prefix=arm-linux-gnueabihf-

./config no-asm shared --prefix=/home/hanhui/krtcode/local/openssl/arm_openssl_gnuea --cross-compile-prefix=arm-linux-gnueabihf-

3.2 make depend

vim Makefile

编辑目录下的Makefile文件,搜索 -m64 并删除,共两处

 

删除后再次输入命令 : make depend 

3.3 make编译

make -j 4     

-j 4 表示用4核编程,更快的编译速度

3.4 编译结果

 ls -rlt

 可以查看所需静态库、动态库

libssl.a     libssl.so.1.0.0.

libcrypto.a     libcrypto.so.1.0.0

查看是否是ARM 32 编译得到的库

libssl.so.1.0.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=3a372cf6c397f602abcbc1ee737e50c79e69f655, with debug_info, not stripped
libcrypto.so.1.0.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=e1d82df3aa039ba659bce9b7ca3a506c4f19fe55, with debug_info, not stripped

 3.5 拷贝ssl、crypto静态库和动态库

拷贝头文件openssl至指定目录中 

 

3.6 也可以将openssl 安装至配置过的目录中

命令: make intall

 查看指定安装目录openssl  arm 文件

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐