您的位置:首页 > 运维架构 > Linux

openssl移植到ARM Linux

2017-07-04 16:06 477 查看

openssl简介

  OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

开发环境

  Ubuntu 16.04

  

  arm-Linux-gnueabi-gcc version 4.6.3

  开发环境不一定是我这配置,只要是linux操作系统,和ARM对应的交叉工具链就可以。

目标环境

  中兴ZX902C(Cotex A9)

  内核版本:3.0.1

移植步骤

  1.从OpenSSL官网下载最新源码 openssl-1.0.2l.tar.gz。

  

  2.执行下面命名解压缩:

tar zxvf openssl-1.0.2l.tar.gz


  3.进入刚解压的目录
cd openssl-1.0.2l/
,执行下面指令,做相应的配置:

./config no-asm shared --prefix=$(pwd)/__install


no-asm
: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码是对arm格式不支持的。

shared
:生成动态连接库。

--prefix
:指定make install后生成目录的路径,不修改此项则默认为OPENSSLDIR目录(/usr/local/ssl)。

  4.修改Makefile:

CC= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc (此处交叉工具链用绝对路径,当然也可以将路劲添加到环境变量就只需写工具链即可:CC= arm-linux-gnueabi-gcc)

删除 CFLAG= 中的-m64

AR= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-ar $(ARFLAGS) r

RANLIB= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib

NM= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm

SHARED_LDFLAGS=


注:上面各项都是修改后的,没有增加内容,只是在原来基础上做修改,故没有列出修改前的内容。

  5.执行下面命令,编译OpenSSL库:

make


  6.执行下面命令,将编译好的库文件拷贝到指定目录:

make install


如下图所示在当前目录下的__install目录下生成了头文件和库文件:




  7.include下文件在编译程序的时候需要指定include的路径。而lib下在程序运行时会用到,需要将lib下文件拷贝到开发板中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: