在计算机网络上,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-gccNOTE: 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 '{}' \;

嵌入式linux开发,openssl-0.9.8d移植相关推荐

  1. 嵌入式Linux开发板_WIFI无线网卡驱动移植

    在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...

  2. 嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)

    目录 一.安装VMware 1.VMware介绍 2.安装VMware16.0.0 二.安装ubuntu16.04.3 LTS 1.Ubuntu介绍 2.下载安装包iso 3.安装 四.新安装Ubun ...

  3. linux用户环境下进入uboot,嵌入式linux开发uboot移植(一)——uboot项目简介

    嵌入式linux开发uboot移植(一)--uboot项目简介 一.uboot简介 U-Boot,全称 Universal Boot Loader,是遵循GPL条款的从FADSROM.8xxROM.P ...

  4. arm linux 内核配置,嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译

    嵌入式 Linux开发Kernel移植(二)--kernel内核配置和编译 本文选择linux 2.6.35.7版本kernel进行实践. 一.linux kernel源码目录分析 Kbuild,Ke ...

  5. 嵌入式Linux开发——系统移植篇回顾

    前言: 最近在学习正点原子Linux开发板u-boot.内核移植,根文件系统构建的相关内容,本文旨在起到一个流程梳理.宏观地把握整个移植u-boot.kernel,构建文件系统过程的作用,像Makef ...

  6. 嵌入式linux轻量级sshd服务工具Dropbear移植

    嵌入式linux轻量级sshd服务工具Dropbear移植 介绍 编译流程 1. 编译zlib 2. 编译dropbear 3. 移植 4. 运行 5. 移植sftp-server 介绍   往往考虑 ...

  7. 嵌入式linux编译环境搭建,嵌入式Linux开发环境搭建

    整理下嵌入式Linux开发环境搭建过程笔记. 一.制作u-boot.bin文件: tar xjf u-boot-1.1.6.tar.bz2 cd u-boot-1.1.6 patch -p1 < ...

  8. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(一) 嵌入式Linux开发基本概念以及开发流程介绍

    文章目录 1.linux开发初了解 1.1 嵌入式Linux开发的基本概念 1.1.1关于Git的背景介绍 1.1.2关于repo的背景介绍 1.1 3 一些关于此背景知识的介绍 1.1.4关于Lin ...

  9. 基于ARM的嵌入式Linux开发平台

    在进行嵌入式系统的开发时,首先面临的难题就是如何挑选一个适合自己的开发平台.ARM系列处理器是专门针对嵌入式设备设计的,是目前构造嵌入式系统硬件平台的首选.本文将介绍如何挑选适合实际需要的嵌入式开发平 ...

最新文章

  1. H5支持度检测常用模式(仅干货)
  2. leetcode算法题--二叉搜索树迭代器
  3. 03-Tomcat服务器
  4. HPC China2016全国高性能计算学术年会即将举行
  5. hashmap实现倒排索引——查询多个单词出现在多个句子中
  6. C# 中的委托和事件[转]
  7. 求职OMG——大学生就业指导与技能
  8. viewState 与session[转]
  9. 实战:采⽤Sharding-JDBC实现订单表的(两主四从) 分库分表 和 读写分离
  10. java中引用数组_javaOO——引用数组
  11. 《流言终结者》,再见
  12. 在Windows10上安装3Ds Max完整教程
  13. 消息队列简介-原理与应用
  14. mysql null处理_MySQL中处理Null时要注意两大陷阱
  15. 给定一个不多于5位的正整数,判断它是几位数,并输出。 输入
  16. Kubernetes部署失败的10个最常见原因
  17. JavaScript前端判断文件是否存在(案例详解)
  18. 无线射频专题《射频基础,射频特征,波长,频率,振幅,相位》
  19. 如何求地球上两点之间的最短距离_例谈平行线上两动点之间距离最短问题
  20. Ubuntu 硬盘”分区“图文教程

热门文章

  1. 理解siki学院吃豆人案例脚本
  2. 基于matlab电热水器模糊温度控制,基于Matlab的锅炉过热汽温模糊控制系统仿真
  3. 平板电脑如何蓝牙和手机配对_如何将蓝牙设备与计算机,平板电脑或手机配对...
  4. 第18节--python文件读写
  5. 求答案 ? 一筐鸡蛋: 1个1个拿,正好拿完。 2个2个拿,还剩1个。 3个3个拿,正好拿完。 4个4个拿,还剩1个。 5个5个拿,还差1个。 6个6个拿,还剩3个。 7个7个拿,还剩4个。 8个8个
  6. SSL/TLS 双向认证(一) -- SSL/TLS 工作原理
  7. 浙江大学计算机科学基础题目,浙江大学计算机科学基础试题库精选
  8. 【案例】湘潭大学一体化运维管理平台
  9. hdu-2814-Interesting Fibonacci-斐波那契循环节
  10. 基于深度学习的人脸性别识别系统(含UI界面,Python代码)