zoukankan      html  css  js  c++  java
  • openssl交叉编译记录

    本次任务是要完毕嵌入式Linux下对openssl程序的支持。
        我的开发环境:ARM9开发板 和 嵌入式Linux操作系统。装有Linux系统(我的是ubuntu9.04)的PC机一台。串口和串口连接线。串口调试软件:minicom。

    交叉编译工具:arm-unknown-linux-gnu-gcc
        下载最新版本号的openssl-1.0.0:
        http://www.openssl.org/source/
       
        解压:$tar -xzvf  openssl-1.0.0.tart.gz
               $cd openssl-1.0.0
            openssl-1.0.0$ ./config no-asm shared prefix=/home/lanpeng/arm-openssl
        解释一下这里的參数: config就是配置脚本。这里不多说了。no-asm是在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的。

    我试过了。假设没有这个參数,你的交叉编译一定出错。shared生成动态连接库。prefix=路径  就是你的安装文件夹。

    安装完毕后在这个文件夹下会有四个文件夹:bin lib include ssl。这四个文件夹很重要,openssl编程就须要这些文件夹的配合。
        配置完毕后我们还要改动Makefile文件(也许有更好的办法不用改动Makefile,这里请高手指点)。改动例如以下:

           
     62 #CC= gcc
     63 CC = arm-unknown-linux-gnu-gcc
     64 #CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAV    E_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
     65 CFLAG= -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_N    O_KRB5 -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
     66 DEPFLAG= -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_R    C5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_STORE
     67 PEX_LIBS=
     68 EX_LIBS= -ldl
     69 EXE_EXT=
     70 ARFLAGS=
     71 #AR= ar $(ARFLAGS) r
     72 AR = arm-unknown-linux-gnu-ar $(ARFLAGS) r
     73 RANLIB = arm-unknown-linux-gnu-ranlib
     74 #RANLIB= /usr/bin/ranlib
     75 #NM= nm
     76 NM = arm-unknown-linux-gnu-nm
     77 PERL= /usr/bin/perl
     78 TAR= tar
     79 TARFLAGS= --no-recursion
     80 MAKEDEPPROG= gcc
     81 LIBDIR=lib

    另一个须要更改的地方,全部-march后面相应的内核要是自己的arm的型号,默认的好像是奔腾的。你要改成自己的如armv5,这个在你运行的时候报错提示你,然后给出一堆型号你选择自己相应的就可以。

      即使用交叉编译工具去编译openssl。
      改动好了以后运行命令:  opensl-1.0.0$ make

      要编译5分钟左右,慢慢等吧。
      然后在输入命令:  opensl-1.0.0$ make install

      没有错误!恭喜了,成功安装。

  • 相关阅读:
    哈希表(python)
    双端循环列表实现栈(python)
    链表实现队列(python)
    循环双端链表(python)
    单链表(python)
    LRU(最近最少使用)(python实现)
    Ajax在Django框架中简单应用2
    图书管理系统增删改查
    Jenkins接入LDAP
    安装python3.6
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10495308.html
Copyright © 2011-2022 走看看