交叉编译OpenSSL

Posted 『流浪的Coder』

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交叉编译OpenSSL相关的知识,希望对你有一定的参考价值。

<openssl简介>
    SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。
SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTPFTPTELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性

<编译步骤>

?编译平台和编译版本

使用的内核:linux3.1

使用的交叉编译器:arm-hisiv400-linux-gcc

使用的iperf的源码:OpenSSL 1.1.1

使用的主机:Centos7.0


?下载源代码
    https://github.com/openssl/openssl
?解压源代码
unzip openssl-master.zip
?检测并对使用平台进行配置
./config no-asm shared --prefix=/home/Documents/openssl-master/install --cross-compile-prefix=arm-hisiv400-linux-
    参数解析:
    no-asm——>Do not use assembler code
    shared——>n addition to the usual static libraries, create shared libraries on platforms where it‘s supported.  See "Note on shared libraries" below。(编译连接成动态库)
    --prefix=/home/Documents/openssl-master/install——>指定编译后安装路径
    --cross-compile-prefix=arm-hisiv400-linux-gcc——>指定交叉编译工具链,这个前缀是" --cross-compile-prefix"还是"--host",暂时没有搞清楚规律与原则
?编译
make
    注意:正在编译之前,需要打开./config 生成的Makefile中将-m64选项全部删除掉,因为平台是在32位的系统上使用,如果是64位,就跳过这一步骤。
?安装
make install
    执行完成之后,就可以在指定的目录下找到编译出来的库文件






以上是关于交叉编译OpenSSL的主要内容,如果未能解决你的问题,请参考以下文章

海思 himix200交叉编译openssl

在Linux下使用MinGW静态交叉编译带有zlib的libcurl(包括交叉编译openssl,即--cross-compile-prefix=i686-w64-mingw32- mingw)(代码

mips编译器交叉编译openssl

海思 himix200交叉编译openssl

君正X2000交叉编译openssl

Openssl 交叉编译指定编译器