参考网址: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();
今天先写这么多了,如果大家遇到更多的问题,或有什么解决方法,希望能相互学习...