美文网首页
openssl移植到32位 ARM Linux

openssl移植到32位 ARM Linux

作者: 南希少 | 来源:发表于2019-01-30 11:50 被阅读0次

    openssl简介

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

    开发环境

      Ubuntu 16.04

      arm-hisiv200-linux-gnueabi

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

    目标环境

     华为海思

    移植步骤

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

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

    tar zxvf openssl-1.0.2l.tar.gz

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

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

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

        shared :生成动态连接库。

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

         setarch i386:声明生成的是32位CPU,如果是64位CPU则去除该部分。

     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.注意

    在项目的Makefile文件里头加入openssl的头文件和库文件的声明,此时需要注意引用库的顺序为:-lssl -lcrypto,如果为 -lcrypto -lssl就会编译错误。

    相关文章

      网友评论

          本文标题:openssl移植到32位 ARM Linux

          本文链接:https://www.haomeiwen.com/subject/pewqsqtx.html