目录
二、安装安装 arm-linux-gnueabihf 交叉编译器
一、编译环境
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 文件