嵌入式linux开发,openssl-0.9.8d移植

        在计算机网络上,OpenSSL是一个开放源代码软件包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。

一、下载

/source/old/index.html

/source/old/0.9.x/index.html

二、解压

openssl源码存在软链接,须在linux系统下解压

tar -vxf openssl-0.9.8d.tar.gz
cd openssl-0.9.8d
mkidr buildout

三、查看帮助

ms@ubuntu:~/work/code/openssh/openssl/openssl-0.9.8d$ ./Configure -h
Configuring for
Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--test-sanity] os/compiler[:flags]

pick os/compiler from:
BC-32 BS2000-OSD BSD-generic32 BSD-generic64 BSD-ia64 BSD-sparc64 BSD-sparcv8
BSD-x86 BSD-x86-elf BSD-x86_64 Cygwin Cygwin-pre1.3 DJGPP MPE/iX-gcc OS2-EMX
OS390-Unix ReliantUNIX SINIX SINIX-N UWIN VC-CE VC-NT VC-WIN32 VC-WIN64A
VC-WIN64I aix-cc aix-gcc aix3-cc aix64-cc aix64-gcc aux3-gcc bsdi-elf-gcc cc
cray-j90 cray-t3e darwin-i386-cc darwin-ppc-cc dgux-R3-gcc dgux-R4-gcc
dgux-R4-x86-gcc dist gcc hpux-cc hpux-gcc hpux-ia64-cc hpux-ia64-gcc
hpux-parisc-cc hpux-parisc-cc-o4 hpux-parisc-gcc hpux-parisc1_0-cc
hpux-parisc2-cc hpux-parisc2-gcc hpux64-ia64-cc hpux64-ia64-gcc
hpux64-parisc2-cc hpux64-parisc2-gcc hurd-x86 irix-cc irix-gcc irix-mips3-cc
irix-mips3-gcc irix64-mips4-cc irix64-mips4-gcc linux-alpha+bwx-ccc
linux-alpha+bwx-gcc linux-alpha-ccc linux-alpha-gcc linux-aout linux-elf
linux-generic32 linux-generic64 linux-ia32-icc linux-ia64 linux-ia64-ecc
linux-ia64-icc linux-ppc linux-ppc64 linux-sparcv8 linux-sparcv9 linux-x86_64
linux64-sparcv9 mingw ncr-scde netware-clib netware-libc netware-libc-bsdsock
netware-libc-gcc newsos4-gcc nextstep nextstep3.3 osf1-alpha-cc osf1-alpha-gcc
purify qnx4 qnx6 rhapsody-ppc-cc sco5-cc sco5-gcc solaris-sparcv7-cc
solaris-sparcv7-gcc solaris-sparcv8-cc solaris-sparcv8-gcc solaris-sparcv9-cc
solaris-sparcv9-gcc solaris-x86-cc solaris-x86-gcc solaris64-sparcv9-cc
solaris64-sparcv9-gcc solaris64-x86_64-cc solaris64-x86_64-gcc sunos-gcc
tandem-c89 tru64-alpha-cc ultrix-cc ultrix-gcc unixware-2.0 unixware-2.1
unixware-7 unixware-7-gcc vos-gcc vxworks-mipsle vxworks-ppc405 vxworks-ppc750
vxworks-ppc750-debug vxworks-ppc860 debug debug-BSD-x86-elf debug-Cygwin
debug-ben debug-ben-debug debug-ben-openbsd debug-ben-openbsd-debug
debug-ben-strict debug-bodo debug-darwin-ppc-cc debug-geoff
debug-levitte-linux-elf debug-levitte-linux-elf-extreme
debug-levitte-linux-noasm debug-levitte-linux-noasm-extreme debug-linux-elf
debug-linux-elf-noefence debug-linux-pentium debug-linux-ppro debug-rse
debug-solaris-sparcv8-cc debug-solaris-sparcv8-gcc debug-solaris-sparcv9-cc
debug-solaris-sparcv9-gcc debug-steve debug-steve-linux-pseudo64 debug-ulf
debug-vos-gcc

NOTE: If in doubt, on Unix-ish systems use './config'.
ms@ubuntu:~/work/code/openssh/openssl/openssl-0.9.8d$

四、配置(加上shared参数,也不生成动态库 )

执行配置前,执行清除+命令删除。

make clean
make clean
find -name "*.o" -exec rm -f '{}' \;
find -name "*.a" -exec rm -f '{}' \;
no-asm: 是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码是对arm格式不支持的
shared :生成动态连接库
no-async:没有提供GNU C的ucontext库
linux-generic32表示标准32位linux
setarch i386:声明生成的是32位CPU,如果是64位CPU则去除该部分
--prefix :指定make install后生成目录的路径,不修改此项则默认为OPENSSLDIR目录(/usr/local/ssl)

Ubuntu下配置,使用绝对路径

./Configure --prefix=`pwd`/buildout-x86 --openssldir=`pwd`/buildout-x86 os/compiler:gcc

arm下配置,使用绝对路径

./Configure --prefix=`pwd`/buildout-arm --openssldir=`pwd`/buildout-arm os/compiler:arm-linux-gcc
./Configure --prefix=`pwd`/buildout-nuc970 --openssldir=`pwd`/buildout-nuc970 os/compiler:arm-linux-gcc
./Configure --prefix=`pwd`/buildout-gt665x --openssldir=`pwd`/buildout-gt665x os/compiler:arm-linux-gnueabihf-gcc

五、编译

make -j4

六、安装

make install -j4

七、安装报错

smime.pod around line 272: Expected text after =item, not a number
smime.pod around line 276: Expected text after =item, not a number
smime.pod around line 280: Expected text after =item, not a number
smime.pod around line 285: Expected text after =item, not a number
smime.pod around line 289: Expected text after =item, not a number
POD document had syntax errors at /usr/bin/pod2man line 71.
Makefile:544: recipe for target 'install_docs' failed
make: *** [install_docs] Error 255

原因分析:OpenSSL 与 perl 不兼容

 解决方案:将文件/usr/bin/pod2man的第71行用#注释掉,或删除文件 /usr/bin/pod2man

八、重新编译与安装

make -j4
make install -j4

注意:Ubuntu下编译后,使用make clean无法全部清除

改变编译器报错

dhparam.o: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
../Makefile.shared:164: recipe for target 'link_app.' failed
make[2]: *** [link_app.] Error 1
make[2]: Leaving directory '/home/ms/work/code/openssh/openssl/openssl-0.9.8d/apps'
Makefile:152: recipe for target 'openssl' failed
make[1]: *** [openssl] Error 2
make[1]: Leaving directory '/home/ms/work/code/openssh/openssl/openssl-0.9.8d/apps'
Makefile:239: recipe for target 'build_apps' failed
make: *** [build_apps] Error 1

执行以下命令解决

make clean
find -name "*.o" -exec rm -f '{}' \;
find -name "*.a" -exec rm -f '{}' \;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寞水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值