为64位ARMv8架构开发板交叉编译openssl-1.0.2l
来源:互联网 发布:网络售彩票最新消息 编辑:程序博客网 时间:2024/05/21 16:54
因科研实验需要,完成了针对64为ARM架构目标开发板的交叉编译,之前网上查询了一些方法,有些并不可行,且操作性与可读性都较差,这里给出自己亲手编译成功的过程。
本次编译的目标环境和编译环境如下:
目标环境:CPU为64位ARMv8的华为620开发板;
编译环境:Ubuntu14.04 LTS + aarch64-linux-gnu-gcc 4.8编译器。
编译器可以通过sudo apt-get install gcc-aarch64-linux-gnu下载安装最新版本,当前最新的openssl-1.0.2l可以从官网下载https://www.openssl.org/source/并解压,尽量下载最新的,杜绝之前的心脏滴血漏洞和其他小bug。
正式交叉编译与安装步骤如下:
1. 运行configure文件,在Linux终端openssl目录下输入如下命令运行configure文件:CC=aarch64-linux-gnu-gcc./config no-asm shared --prefix=/home/xiaot/armlib/openssl
其中参数./configno-asm shared--prefix=的含义为:
no-asm:在交叉编译过程中不使用汇编代码代码加速编译过程;
shared:生成动态链接库;
--prefix:指定生成lib、include、bin三个核心目录的路径,不修改此项则默认为OPENSSLDIR目录。
2. ./configure执行完毕后,可以生成对应的makefile文件,其具体名称为openssl_Makefile,打开该文件,可以看到CC条目已经自动生成了对应的编译器名称,此时还需要对其它条目进行修改,主要修改条目包括AR、RANLIB和NM,将它们的内容由原始的gcc相关项修改为aarch64相关项,修改后核心内容如下:
CC= aarch64-linux-gnu-gccCFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -O3 -WallDEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_LIBUNBOUND -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_SSL_TRACE -DOPENSSL_NO_SSL2 -DOPENSSL_NO_STORE -DOPENSSL_NO_UNIT_TEST -DOPENSSL_NO_WEAK_SSL_CIPHERSPEX_LIBS= EX_LIBS= -ldlEXE_EXT= ARFLAGS= AR= aarch64-linux-gnu-ar $(ARFLAGS) rRANLIB= aarch64-linux-gnu-ranlibRC= windresNM= aarch64-linux-gnu-nmPERL= /usr/bin/perlTAR= tarTARFLAGS= --no-recursionMAKEDEPPROG=makedependLIBDIR=lib
此外,还要把该文件中的所有-m64标记删除,正常情况下应该有两处,第一处在CC的编译选项处下面,第二处如下图,可以把SHARED_LDFLAGS=-m64一行注释掉。
修改完毕后,在终端输入make进行编译。
3. 编译成功完成后直接sudo make install即可,将安装到./configure时指定的目录。如下图:
4. 至此,已经完成了openssl的交叉编译工作,对于确认它是否成功make和make install的测试,可以编写测试程序交叉编译后在目标环境中运行,这部分内容将在下一篇博客中简单介绍。
- 为64位ARMv8架构开发板交叉编译openssl-1.0.2l
- 交叉编译 openssl-1.0.0l
- 交叉编译openssl-1.0.2l测试的第一个程序--随机数生成
- ARM发布64位架构ARMV8
- 【讨论】ARMv8架构,64位处理器
- 编译openssl-1.0.0l
- ARM 64位处理器架构ARMv8技术浅析
- ARM 64位处理器架构ARMv8技术浅析
- openssl-1.0.0a 64位编译
- aarch64(ARMv8)交叉编译环境下载
- openssl-1.0.2-beta3 mips 平台交叉编译
- VS2013编译64位OpenSSL
- windows7 64位 编译 openssl
- 交叉编译openssl-1.0.0 for arm
- 交叉编译openssl-1.0.0e
- 交叉编译openssl-1.0.1k
- openssl交叉编译
- openssl交叉编译
- TF-IDF与余弦相似性的应用(一):自动提取关键词
- CDH5离线安装---使用的版本是5.11.1
- Oracle基础 物理备份 冷备份和热备份
- Linux (centos7) 防火墙命令
- set_exception_handler用法
- 为64位ARMv8架构开发板交叉编译openssl-1.0.2l
- SafeKit(DurexKit)实现原理
- retrofit2原理学习(未完待续)
- 剑指offer--平衡二叉树
- 矢量图标文件格式设计
- unity 图片转byte数组
- gethup.sh
- ImageView上的Button无法响应
- 浅谈iOS颜色