openssl-0.9.8e.tar.gz移植

编译与安装 OpenSSL:

prefix 是安装目录,openssldir 是配置文件目录,另外建议安装两次,shared 作用是生成动态连接库。wget ftp://ftp.openssl.org/source/openssl-1.0.0c.tar.gz
tar -zxf openssl-1.0.0c.tar.gz
cd openssl-1.0.0c/
./config  --prefix=/usr/local/ --openssldir=/usr/local/ssl
make && make install
./config shared --prefix=/usr/local/ --openssldir=/usr/local/ssl
make clean
make && make install


交叉编译:
1../config no-asm shared --prefix=/usr/local/openssl
2.修改Makefile, 将CC AR RANLIB 改为你的cross compile 工具,别忘了令EX_LIBS= -ldl(修改如下)
make
3.make install
编译出来动态链接库

修改makefile如下:
                                                                                                                                               
 -CC= gcc
 +CC= arm-linux-gcc
 #CFLAG= -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall -Wuninitialized -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
 CFLAG= -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_NO_KRB5 -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
 DEPFLAG=
 PEX_LIBS=
 -EX_LIBS=
 +EX_LIBS= -ldl
 EXE_EXT=
 ARFLAGS=
 -AR=ar $(ARFLAGS) r
 -RANLIB= /usr/bin/ranlib
 -PERL= /usr/local/bin/perl
 +AR=arm-linux-ar $(ARFLAGS) r
 +RANLIB= arm-linux-ranlib
 +PERL= /usr/bin/perl
 TAR= tar
 TARFLAGS= --no-recursion
 MAKEDEPROG= gcc

安装:

make install

1、出现错误

cms.pod around line 457: Expected text after =item, not a number
cms.pod around line 461: Expected text after =item, not a number
cms.pod around line 465: Expected text after =item, not a number
cms.pod around line 470: Expected text after =item, not a number
cms.pod around line 474: Expected text after =item, not a number
POD document had syntax errors at /usr/bin/pod2man line 69.
make: *** [install_docs] Error 1
2、解决方法

rm-f /usr/bin/pod2man

==================================================

开发环境

  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就会编译错误。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值