ARM平台移植 openssl-1.1.0

2023-11-08

系统环境:Ubuntu 14.04.3 LTS
源码:openssl-1.1.0-pre1.tar.gz
交叉编译环境:arm-none-linux-gnueabi-
[zhaojq@virtual-machine]# tar -xzvf  openssl-1.1.0-pre1.tar.gz
[zhaojq@virtual-machine]# cd openssl-1.1.0-pre1
[zhaojq@virtual-machine]# sudo -i
切换到root状态下
不然在config时会出现unable to create Makefile.new:权限不够
[ root@virtual-machine]# ./config no-asm shared
no-asm 是在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的
shared 生成动态连接库
--prefix 指定make install后生成目录的路径,不修改此项则默认为OPENSSLDIR目录(/usr/local/ssl)
配置完成后修改Makefile文件,CC=和--host=无效
#CC= gcc
CC= arm-none-linux-gnueabi-gcc
删除 CFLAG= 中的 -march=i486
必须删除掉,默认的是x486体系,即使设置了交叉编译环境,还是会默认这个体系
EX_LIBS= -ldl
#AR= ar $(ARFLAGS) r
AR= arm-none-linux-gnueabi-ar $(ARFLAGS) r

#RANLIB= /usr/bin/ranlib
RANLIB= arm-none-linux-gnueabi-ranlib

#NM= nm
NM= arm-none-linux-gnueabi-nm
[root@virtual-machine]# make
[root@virtual-machine]# make install
安装成功
交叉编译后的动态库文件在/usr/local/ssl目录
[zhaojq@virtual-machine /usr/local/ssl]# ls
bin  certs  include  lib  man  misc  openssl.cnf  private
查看库文件格式
[zhaojq@virtual-machine /usr/local/ssl/lib]# readelf -h libssl.so
ELF 头:
  Machine:  
ARM
编译test实例
#include <stdio.h>
#include <openssl/sha.h>

int main ()
{
  SHA_CTX s;
  int i, size;
  char c[512];
  unsigned char hash[20];
  // 初始化 SHA Contex, 成功返回1,失败返回0
  SHA1_Init(&s);

  // 循环调用此函数,可以将不同的数据加在一起计算SHA1,成功返回1,失败返回0
  while ((size=read (0, c, 512)) > 0)
    SHA1_Update(&s, c, size);

  // 输出SHA1结果数据,成功返回1,失败返回0
  SHA1_Final(hash, &s);

  for (i=0; i < 20; i++)
    printf ("%.2x", (int)hash[i]);
  printf ("\n");
}
[zhaojq@virtual-machine]# arm-none-linux-gnueabi-gcc sha1_test.c -I/usr/local/ssl/include/ -L/usr/local/ssl/lib -lssl -lcrypto -ldl -o sha1_test.out
编译通过,在当前目录生成sha1_test.out可执行文件
将/usr/local/ssl/lib目录下的所有文件和pkgconfig,engines目录都拷贝到ARM设备上文件系统的/lib目录,
sha1_test.out拷贝到ARM设备上
执行./sha1_test.out < sha1_test.out
输出:78b32a7882a5ffea5d48b2f2b6bea633fa78e0e1
移植成功。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARM平台移植 openssl-1.1.0 的相关文章

随机推荐

  • javase 基本运算符和三大流程

    范围 2 字节 X 8 1 2 字节 X 8 1 1 主要区别是数据大小范围 1 byte 一个字节 128 127 2 short 两个字节 32768 32767 3 int 四个字节 2147483648 2147483647 4 l
  • UGUI图片跟随文本框长度改变位置

    这次要完成一个功能 需要钻石图标跟随数字的长度改变位置 之前使用了Layout Group排版 在数字改变的时候会出现一点小问题 这次使用锚点去进行跟随 设置文本框的属性 使其从右往左排版 并添加ContentSizeFitter组件 使其
  • 智慧图书馆:自助阅读,安全防盗

    RFID技术在智慧图书馆建设中具有重要作用 可为构建书香校园智慧阅读新生态提供强有力的保障 RFID技术可以用来识别 追踪和保护图书馆的所有资料 通过RFID系统可实现图书借还 上架 查找 馆藏盘点等功能 大大的改进管理方式 提高工作效率
  • “囚徒”李一男回归华为真相揭密

    作者 周遊 时间 2006 09 25 11 44 50 来源 中国计算机报 name google ads frame marginwidth 0 marginheight 0 src http pagead2 googlesyndica
  • 自然语言处理技术之词向量:GloVe单词表示的全局向量(glove.840B.300d、glove.6B)

    目录 一 词向量介绍 二 GloVe学习词向量的词嵌入模型 三 词向量入门 代码下载 四 训练 五 模型概述 六 可视化 七 发布历史 一 词向量介绍 自然语言处理 NLP 中的词向量是将文本中的词汇表示为数值向量的技术 词向量的主要作用是
  • 物理机服务器应该注意的事

    物理机服务器应该注意的事 1 选址 服务器是个非常重要的硬件产品 对机房的也是有一定的要求的 比如温度 安全性 噪音 电源稳定性等等问题都需要解决 但是不是每个人都会选择自己建立一个机房 毕竟各方面加起来的成本都太高 这个时候可以选择一个专
  • @SpringBootApplication 相当于 @Configuration、@EnableAutoConfiguration 、 @ComponentScan 三个的作用

    ComponentScan 如果不设置basePackage的话 默认会扫描包的所有类 所以最好还是写上basePackage 减少加载时间 默认扫描 class路径 比如这个注解在com wuhulala 下面 那么会扫描这个包下的所有类
  • pycharm安装opencv-python失败的手动解决办法

    解决方法 直接将opencv python文件下载到本地 把文件放到对应pycharm项目的Lib site packages路径下 在这里分享window系统的opencv python文件下载链接 链接 https pan baidu
  • ACC测试理论--google软件测试之道

    ACC测试理论 A Attribute 特质 在测试之前 需了解产品的特质是什么 即客户为何需要选择此产品的原因 Chrome的定位是快速 安全 稳定和优雅 特质所拥有的特点如下 简单 如果你不能几分钟内列举出来 说明你还没有足够理解你的产
  • CMake添加gcov代码覆盖测试支持

    CMake添加gcov代码覆盖测试支持 金庆的专栏 在根CMakeList txt中添加ENABLE GCOV选项 OPTION ENABLE GCOV Enable gcov debug Linux builds only OFF IF
  • 基数排序python

    一 基数排序介绍 基数排序 radix sort 属于 分配式排序 distribution sort 又称 桶子法 bucket sort 或bin sort 顾名思义 它是透过键值的部份资讯 将要排序的元素分配至某些 桶 中 藉以达到排
  • Shopify速度优化

    对于很多出海的商家 网站速度的加载快慢一直是大家困扰的问题 首先我们先认识下什么是网站速度和网页速度 网站速度是用户浏览网站时的网站加载速度 从第一页加载到访客点入浏览 最后在购物车页面 结账 这个速度由一些服务来评分 例如 Google
  • Influxdb 1.2版本优化之旅(经验证,适用于influxdb1.4版本)

    一 常见异常 1 max series per database exceeded 异常 err max series per database exceeded java lang RuntimeException error max s
  • c#与matlab混合编程解决线性规划,非线性规划(二次规划)等问题

    网上已经有很多类似方法 上一篇是Lingo 本篇是matlab 两个软件在解决最优解方面各有优势 matlab软件中自带许多函数 1 非线性规划 x fval fmincon fun x0 A b Aeq beq lb ub nonlcon
  • vscode react代码提示和补全

    无代码提示 安装代码提示插件Reactjs code snippets 按ctrl 进入设置界面 输入 tag usesOnlineServices 勾选 JSX html无自动补全 按ctrl 进入设置界面 搜索框中输入Include L
  • emoji表情大全

    emoji表情 emoji人物 emoji手势 emoji日常 emoji手机 emoji公共 emoji动物
  • 介绍一个很爽的 php 字符串特定检索函数---strpos()

    大家在用 php 开发的时候 是否 有遇到过 对于一个获取的字符串 如果想要特定检测它是否 含有某个特定的字符或者子字符串 总是找不到好方法 或者根本做不到 迫于无奈而使用foreach 函数 strpos 参数1 待检索的字符串或字符串变
  • Activity启动流程

    简述 Activity 启动分为两种 1 Activity中通过startActivity 方法启动一个Activity 2 从桌面通过点击应用图标启动一个App然后显示Activity 我们通过第二点来分析 更全面一点 先走一波流程图 以
  • 周志华《Machine Learning》学习笔记(17)--强化学习

    上篇主要介绍了概率图模型 首先从生成式模型与判别式模型的定义出发 引出了概率图模型的基本概念 即利用图结构来表达变量之间的依赖关系 接着分别介绍了隐马尔可夫模型 马尔可夫随机场 条件随机场 精确推断方法以及LDA话题模型 HMM主要围绕着评
  • ARM平台移植 openssl-1.1.0

    系统环境 Ubuntu 14 04 3 LTS 源码 openssl 1 1 0 pre1 tar gz 交叉编译环境 arm none linux gnueabi zhaojq virtual machine tar xzvf opens