openssl 客户端程序移植到arm平台 OK6410上运行

openssl三方库交叉编译 项目需要将openssl三方库编译成在arm板子上能跑的AArch64格式,踩了一些坑,做个笔记一来方便以后忘记查阅,二是希望能帮助其他小伙伴能少走些弯路。提示:以下是本篇文章正文内容,下面案例可供参考openssl交叉编译配置总体还是比较简单的三方库,配置好交叉编译工具的环境变量和config文件一路畅通无阻,希望本篇内容对你有些帮助。 阅读详情

     openssl  客户端程序如何移植到arm平台上运行?

     在我的项目中拥有一个服务器程序file_server和一个客户端程序file_client,它们实现了通过安全套接字层传输文件的功能。原本两个程序都在pc上运行,现在要把客户端程序移植到arm平台上。

     原来makefile中生成客户端程序的规则是这样的:

     gcc file_client.c -o file_client -lssl -lpthread

     如果想移植到arm平台是不是直接将 gcc 改为 arm-linux-gcc就可以了呢?回答是不行的,原因在于-lssl连接的库libssl.a或 libssl.so原本是在x86的环境下编译生成的,所以直接arm-linux-gcc file_client.c -o file_client -lssl -lpthread 会提示搜索到的库格式不对。

     因此应该重新编译openssl,步骤如下:

     1.config:

        #config no-asm (忽略x86汇编部分)

     2.改Makefile

        1) CC= gcc 改成 CC = arm-linux-gcc;

        2) 删除 CFLAG= 中的 “-march=pentium”;(如果有的话)  

        3) AR=ar $(ARFLAGS) r 改为 AR=arm-linux-ar $(ARFLAGS) r;

        4) ARD=ar $(ARFLAGS) d 改为 ARD=arm-linux-ar $(ARFLAGS) d;

        5)RANLIB= /usr/bin/ranlib 改为 RANLIB= arm-linux-ranlib;

     3.编译

        #make


     编译完成后会产生libssl.a 和libcrypto.a 两个归档文件,将这两个文件copy到客户端代码目录下,直接和源文件进行编译:

     arm-linux-gcc file_client.c -o file_client libcryto.a libssl.a  -lpthread

    

     这时会出现:error:openssl/ssl.h: No such file or directory的错误,这显然是因为我们的arm-linux-gcc编译器没有把x86环境下的/usr/include作为标准头文件搜索目录的缘故。(原来在pc机上装x86的openssl时,将openssl的头文件install到这个目录)

     我们可以加上一个选项: -I/usr/include

 

     这时按照:

     arm-linux-gcc file_client.c -o file_client libcryto.a libssl.a  -lpthread -I/usr/include

     进行编译,又会冒出一大堆的:undefined refrence to ' '  错误。符号未定义?可以头文件都包含进来了啊?仔细分析另一种可能的原因是库的使用,准确的说是库的编译顺序,libssl.a用到很多符号,而这些符号只在libcryto.a定义或申明 ,那么libcrypto.a 应该出现在libssl.a 的后面 。

 

     arm-linux-gcc file_client.c -o file_client libssl.a  libcryto.a -lpthread -I/usr/include

     这时还会提示:undefined refrence to ' dlopen' ,再将 libdl.a(用于加载动态库方法的库)包含进去即可。

     最终编译命令:

 

     arm-linux-gcc file_client.c -o file_client libssl.a  libcryto.a -lpthread -I/usr/include  -ldl -static

 

     将生成的可执行程序 file_client 拷贝到开发板,chmod 777 file_client 修改权限,在pc上运行服务器程序,在开发板上运行客户端程序即可,下面给出我的程序在OK6410上的运行效果图:

1.运行客户端程序:

2.使用cd home切换客户端目录:

3.下载服务器上的文件serv.cpp

4.下载完成

5.屏幕刷新后,可见客户端home目录下多出的文件serv.cpp

 

 

 

opus编译库到arm上面用 一、可以到https://opus-codec.org/下载源码 进入到目录 % ./configure CFLAGS="-Os" --enable-fixed-point --enable-intrinsics --host=arm-linux // configure后面的参数是指定优化选项,和编译器 % make % sudo make install二、可以用git下载源码 % 阅读详情

相关推荐

openssl移植的arm开发板全过程

1.交叉编译参考了:http://hi.baidu.com/lihuanhai1943/blog/item/00ef57fa9ee3d1d6b58f31d0.html我的makefile修改完如下:#CC=gccCC=armv6zk-none-linux-gnueabi-gccC

梦想的蓝天草原--未来的时间自由人--哈哈哈哈 6535

编译-openssl交叉编译问题

openssl交叉编译问题

ty的专栏 1万+

OpenSSL库在WIN32平台和ARM平台下的编译

OpenSSL是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供了丰富的应用程序供测试或其他目的使用。访问OpenSSL的官方网站[https://www.openssl.org/source/],下载1.1版本的源码包,并解压至合适的目录。通过以上步骤,可以在WIN32平台和ARM平台下成功编译OpenSSL库,并将其用于各自平台的安全通信和数据加密等需求。的错误,需要编辑Makefile文件,删除相关的。将生成的库文件和头文件安装到指定的目录。

哈哈星云 859

基于嵌入式linux的OpenSSL源码移植(基于arm64)

本文介绍在openssl的源码(注意:本文OpenSSL源码为V1.1.1t,是V1.x的最新版本。)移植流程,使用ubuntu系统的交叉编译器环境编译openssl的源码,生成可以在ARM64架构上运行的应用软件。

q544344318的博客 2423

opus编解码移植stm32f407

移植好的opus音频编码,测试编解码正常。采用freertos实时系统。

openssl 最新版 all Platform

openssl 最新版 全平台 .a 类库 i386 arm64 armv7 armv7s x86_64,全部支持 lib/libssl.a are: i386 armv7s armv7 x86_64 arm64 lib/libcrypto.a are: i386 armv7s armv7 x86_64 arm64

使用openssl的md5库

在linux机器上,有一个命令可以计算出文件的md5值,那就是md5sum,如果没有的话,就需要安装RPM包:coreutils。 现在我们使用openssl的库也可以方便的计算出文件的md5值。主要用到的函数是 int MD5_Init(MD5_CTX *c); int MD5_Update(MD5_CTX *c, const void *data, size_t len); int M

hepeng597的专栏 2万+

Nvidia Isaac Sim图形界面 入门教程 2024(3)

在使用Isaac Sim时,最先接触到的应该是它的图形界面,此处将简单介绍图形界面中常用的一些组件:Isaac Sim的界面的常用内容可以分为几个板块。

m0_56661101的博客 4547

移植OpenSSL加密软件到ARM

1.执行解压命令tar xvzf ./opensll-1.0.0s.tar.gz,解压后进入文件夹. 2.mkdir _install 创建一个_install文件夹 3.执行命令  ./config no-asm shared --prefix=/home/S5-Pro/Spring_1/opensll-1.0.0s/_install/(此处填绝对路径) 4.修改Makefile 将c

5念since 2240

MIC卡的OFED驱动安装

 IB网络和OFED驱动安装 IB InfiniBand是一个统一的互联结构,可以处理存储I/O、网络I/O和进程间通信(IPC)。它可以将磁盘阵列、SANs、LANs、服务器和集群服务器进行互联,也可以连接外部网络(比如WAN、VPN、互联网)。设计InfiniBand的目的主要是用于企业数据中心,大型的或小型的。目标主要是实现高的可靠性、可用性、可扩展性和高的性能。Inf

beglorious的专栏 5106

海康威视工业相机SDK二次开发实战:多相机同步采集与图像存储

本文详细介绍了海康威视工业相机SDK二次开发实战,包括多相机同步采集与图像存储的优化方案。通过MVS软件搭建开发环境,实现硬件与软件触发同步采集,并提供高效的图像存储管理技巧,帮助开发者提升工业视觉项目的效率与稳定性。

weixin_29168813的博客 666

openssl移植arm开发板

openssl移植arm开发板一 准备openssl压缩包mini244开发板二 步骤step1 解压缩# tar zvcf openssl-1.0.0s.tar.gz# cd openssl-1.0.0sstep2 配置# mkdir _install# .config no-asm shared --prefix=/home/S4-DRIVER/project/part2/openssl-1....

yyq5033的博客 959

国产SR8201F以太网PHY芯片调试避坑指南:从机贴失败到杜邦线救场的实战记录

本文详细介绍了国产SR8201F以太网PHY芯片的调试避坑指南,涵盖硬件设计、PCB布局、SMT贴片及软件驱动等关键环节。通过实战案例解析,帮助工程师解决MII/RMII接口配置、电源设计、信号完整性等典型问题,提升以太网通信稳定性与EMC性能。

c6d7e8f9g的博客 1216

【物联网】ARM平台移植openssl-1.1.1详解

OpenSSL是一款开源的安全套接字层(SSL)和加密套接字层(TLS)库,它可以为互联网通信、邮件、文件传输和其他应用程序提供安全保护。它支持多种加密算法,包括对称和非对称加密,并且可以在各种操作系统和硬件平台上运行。OpenSSL由全球各地的开发者和组织共同维护和开发,是目前最流行的SSL和TLS库之一。命令行工具:openssl命令行工具可以用于生成证书、密钥、TLS连接和其他安全操作。库文件:openssl库文件包含了OpenSSL的主要功能,可以在程序中直接使用。

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 2545

S型速度曲线进阶:基于Sin²(x)的PLC平滑运动控制实践(以伺服/步进系统为例)

本文深入探讨了基于Sin²(x)的S型速度曲线在PLC平滑运动控制中的实践应用,特别针对伺服/步进系统。通过对比传统梯形曲线和七段S曲线,详细展示了Sin²(x)曲线在加速度连续性、计算效率和参数自适应性方面的优势,并结合博图平台的具体实现技巧和实战案例,为精密运动控制提供了优化方案。

weixin_28718793的博客 242

“挑战杯”大赛“揭榜挂帅”赛道-baseline解析

在这个脚本中,txt文件的保存路径为'yolov7/datasets/Fatigue_driving_detection/txt_labels/',而xml文件的路径为'./label_xml/'。标注图片后的产物是会给每一个图片对应生成一个xml格式的文件,但是如果要用yolo框架去训练模型,输入的数据必须是txt格式,因此这里有一步转换格式的过程。注意看:obs这里有三个文件夹,第一个是关键帧的文件夹A,第二个是标注时输出的位置为文件夹B,第三个是智能标注后和手动标注的合集文件夹C。

m0_62899814的博客 2321

Openssl移植到ARM开发板

Openssl移植到ARM开发板openssl源码下载源码编译配置使用生成的库文件 openssl源码下载 openssl源码可以在官网下载:https://www.openssl.org/source/,如图所示,下载需要的版本。 下载源码的好处是编译时可以自己定义一些配置,否则也可以使用apt-get等命令安装。 源码编译配置 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标...

lingyuncao的博客 5185

预测股票价格趋势:使用MATLAB进行股票价格预测

通过收集股票数据、数据预处理、构建预测模型以及可视化结果,我们可以利用MATLAB强大的计算和分析功能来预测股票价格的走势。然而,需要注意的是,股票市场具有高度复杂性和不确定性,预测结果仅供参考,并不构成投资建议。然而,借助计算机编程和数据分析工具,我们可以利用历史股价数据来建立模型,并预测未来的股票价格走势。首先,我们需要获取股票的历史价格数据。完成模型的拟合后,我们可以使用该模型来进行未来股票价格的预测。最后,我们可以使用MATLAB的绘图功能将预测的股票价格与实际股票价格进行对比,并进行可视化展示。

2301_79326588的博客 1018

编译并导入OpenSSL

编译并导入OpenSSL   1. 首先,需要运行脚本生成OpenSSL库,参考 https://github.com/x2on/OpenSSL-for-iPhone 示例     2. 运行脚本生成静态库 下一步我们会用到这两个文件夹中的内容   3. 新建一个文件夹叫 openssl ,然后将 OpenSSL-for-iPhone 项目中的 FSOpenSSL.h/...

weixin_33742618的博客 297

python实现下载和离线安装包环境

导出当前电脑python安装的所有包列表requirement.txt。

m0_60352504的博客 1676

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

交叉编译 Openssl,然后移植到ARM板上

请移步:https://blog.youkuaiyun.com/lingyuncao/article/details/90667781

zgp2917的专栏 795

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

openssl之linux编译

编译前工作         解压源码,例如:openssl-OpenSSL_1_1_1-stable.zip到目录/home/workspace/openssl-OpenSSL_1_1_1-stable。         在父目录创建构建目...

hezhanran的博客 3347

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ARM平台移植openssl1.1.1g

1.openssl简介 在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。 SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。

qq_36973838的博客 3194

【交叉编译】ARM平台交叉编译|OpenSSL

由于是交叉编译,如不使用该选项,会出现汇编指令不识别的问题,因为openssl默认使用的汇编指令为X86平台下的指令,而一般的交叉编译器使用时ARM平台下的交叉编译器。注意:正在编译之前,需要Makefile中将-m64选项全部删除掉,因为aarch64-linux-gnu-gcc编译器不识别该选项。版权声明:本文为优快云博主「奔跑的码仔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。交叉编译器Compiler:aarch64-linux-gnu-gcc。

guanlizhongxintishi的博客 1484
上一篇: NFS无法挂载,出现错误:reason given by server: Permission denied的解决办法
下一篇: 线程条件变量详解
RICH_BABA
博客等级 码龄17年 51粉丝 17原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值