openssl-0.9.8g移植到嵌入式linux平台

时间:2021-03-12 19:24:31
 

    参考网址:http://lei-derek.blog.sohu.com/69418181.html

1.先到www.openssl.org/source/去下载一个openssl源码包.openssl-0.9.8g.tar.gz这是现在最新的源码包.

    2.把openssl-0.9.8g.tar.gz放入/home/work/openssl/目录下,执行:

      $tar xzvf openssl-0.9.8g.tar.gz

    3.进入openssl-0.9.8g目录

      $cd openssl-0.9.8g

此时我们假设工作路径为:WPATH=/home/work/openssl/openssl-0.9.8/

    4.在$WPATH目录下执行: $./Configure linux-elf no-shared --prefix=yourpath os/compiler=arm-elf-gcc

    5.完成后,修改各级Makefile文件.

       把其中的CC、RANLIB、AR都修改为arm-elf-gcc、arm-elf-ranlib、arm-elf-ar(我们假设你的编译工具命名是以arm-elf为前缀的)。

       然后,把FLAGS后加上:-D__PIC__ -msoft-float -msingle-pic-base -fpic -W1 -elf-flt

       接着,我们把自己平台的系统的头文件加上,即在INCLUDE宏的后加上:-I/yourincludepath...

       应该就需要修改这些吧,因为这是上周做的,当时没记下来,可能会有点出入,不过应该是没问题的哈,   不行大家再讨论一下吧...呵呵

    6.$make

    7.$make install

这样,openssl就安装到你设定的路径中了,里面包括有lib,bin,man...等一些目录。你所需的openssl库就在lib目录下,有libssl.a和libcrypto.a两个库。

   8.在应用程序的Makefile里,你需要把这两个库加上,以及需要把上面CFLAGS里面的选项也加上。

一切就都ok了。

 

 

遇到问题:

    1.当编译或应用程序测试时,出现找不到库,或编译不过或reloc错误的现象,有可能是交叉编译工具需要更新,我当时就是这样解决这个问题的

    2.应用程序编译通过,但不能运行,出现SSL_CTX_new()出错时,可能是没有加载SSL库,需要在你对SSL作操作的最前面加上OpenSSL_add_all_algorithms();

今天先写这么多了,如果大家遇到更多的问题,或有什么解决方法,希望能相互学习...