让这个该死的服务跑起来了~

#前言

被该死的Openssl编译嘲讽了一个下午

之前的文章说了我的那个编译的问题,这里说下,知识点有点零散,最后的解决也是一个同事提示,感觉也有点奇葩的赶脚。到目前为止,我现在感受到了写文章的好处,昨晚的问题,发出去后,守望就找我,跟我说自己解决过这个问题,然后就巴拉巴拉了一下,我就知道怎么解决了,讲真的,搞这种开源库出现的问题很考验人,一个要懂这些东西,懂了之后还有会学,还需要用工具去分析。

我之前有一次开会跟老板说,三个臭皮匠能比上一个诸葛亮,我们做的很多工作都是搬运的行为,既然不是1000%的核心竞争力,那么知识沟通就显得非常重要,去获取别人知道的知识,也会一种技能,所以就出现了各种技术沟通交流群。

看看昨天的那个错误日志。

#正文

先分析下上面的原因,可能去看很多百度什么的,google什么的,说的都很诡异的。

  • 先看看这个文件存在不

从图片中提示的路径里面看,这个路径应该是没有问题了。

  • 再看这个文件的格式对不对

readelf -h libreadline.a看到这里我傻眼了,因为我们的新项目需要一个32位的服务,我是想编译32位的,但是这里是64位的库,能编译通过才怪。

这里说下这个工具 readelf ,这个工具可以用来查看文件的属性。比较具体的可以看这个链接

https://blog.csdn.net/yfldyxl/article/details/81566279

1、选项 -h(elf header),显示elf文件开始的文件头信息。

2、选项 -l(program headers),segments 显示程序头(段头)信息(如果有数据的话)。

3、选项 -S(p headers),ps 显示节头信息(如果有数据的话)。

4、选项 -g(p groups),显示节组信息(如果有数据的话)。

5、选项 -t,p-details 显示节的详细信息(-S的)。

6、选项 -s,symbols 显示符号表段中的项(如果有数据的话)。

7、选项 -e,headers 显示全部头信息,等价于: -h -l -S 。

8、选项 -n,notes 显示note段(内核注释)的信息 。

9、选项 -r,relocs 显示可重定位段的信息。

10、选项 -u,unwind 显示unwind段信息。当前只支持IA64 ELF的unwind段信息。

11、选项 -d,dynamic 显示动态段的信息。

12、选项 -V,version-info 显示版本段的信息。

13、选项 -A,arch-specific 显示CPU构架信息。

14、选项 -I,histogram 显示符号的时候,显示bucket list长度的柱状图。

15、选项 -x,hex-dump=<number or name> 以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名

16、选项 -D,use-dynamic 使用动态段中的符号表显示符号,而不是使用符号段 。

17、选项 -a,all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I。

18、选项 -v,version 显示readelf的版本信息。

19、选项 -H,help 显示readelf所支持的命令行选项。

#过程很有意思

然后我就去看这个库在哪里生成的,然后就看到了readline这个东西,这个也是一个开源库,主要是用来处理数据格式转换的。

所以如果你是做开源方面的处理的话,可能会经常用来做上下位机的数据处理,里面还有一些samples文件,有兴趣的可以去看看。

Introduction

This is the Gnu Readline library, version 8.0.

The Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in.  Both Emacs and vi editing modes are available.  The Readline library includes additional functions to maintain a list of previously-entered command lines, to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.

然后我就去看这个库原来的编译方式,我们编译64位的时候,是这样编译的。

我们想编译32位的库需要修改为

主要区别在这个 --host的参数上 看看是什么意思这个参数的含义是在configure文件里面,不是在Makefile里面,Makefile是通过configure配置生成的,我刚开始还傻傻的去修改Makefile,这肯定是不对的。所以我们要修改什么,就通过配置传不同的内容进去。

cross-complie可以理解为交叉编译,一个在X86运行的电脑,需要编译ARM的东西,这就叫交叉。

而eabi 也是一个有意思的,abi对应一种指令集,不同的CPU框架有不同的指令集,现在不是出现了什么开源的CPU指令集,如果所有的CPU都支持相同的指令集,那肯定对我们非常有帮助,代码也修改比较少。

如果是 32位的,我们可以使用readelf -h 看里面的Flags。

我们经常看到的EABI是什么你们知道不?

EABI

Embedded Application Binary Interface

翻译成中文应该是
嵌入式应用二进制接口,我觉得还是我上面说的比较直接,就是不同的指令集。

安卓支持的CPU指令集框架如下
也可以认为Android支持的CPU种类如下

查看自己设备的CPU


最后成功跑起来的效果

中间省略了一些配置问题,还需要配合一个apk一起测试使用

大家好,在评论写出你在工作和学习中遇到的调试问题,我选出2位同学赠送2本50元以内的书籍,书籍你可以自己选择,你发购买链接给我让我代付就好了。

时间:截止2020年4月24号 20点

我选出后会评论回复你,然后你就可以加我微信跟我联系了。

最近支持星球大家慢慢形成了讨论的氛围,希望有学习困扰的同学一起加入。

5块钱加入我的知识星球~

感谢大家支持~

  回复「 篮球的大肚子」进入技术群聊

回复「1024」获取1000G学习资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习概述

深度学习 传统学习与深度学习 深度学习应用特点 深度学习框架比较 Tensorflow 神经元 卷积核 分类 回归 生成

Python--递归

面向函数编程 def func():print(从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚讲故事&#xff0c;讲的什么呀&#xff1f;)func() 解耦&#xff1a;尽量把不相关的功能拆开&#xff0c;用的时候再调用函数&#xff0c;增强代码重用性&#xff0c;减少代码变更的…

传统神经网络

文章目录神经网络的起源&#xff1a;线性回归一个线性回归问题线性回归优化方法&#xff1a;梯度下降梯度计算梯度计算总结线性回归&#xff1a;输出线性回归&#xff1a;局限从线性到非线性非线性激励常用的非线性激励函数tanhRELULecky RELU神经元—神经网络神经网络构建神经…

深度学习之卷积神经网络

文章目录深度学习之卷积神经网络链式反向梯度链式法则的计算神经网络中链式法则实例二、卷积神经网络-卷积层&#xff08;一&#xff09;什么是卷积层&#xff08;二&#xff09;有什么组成受什么影响&#xff0c;有何特点卷积网络正向传播反向传播卷积和神经网络功能层深度学习…

卷积神经网络高级篇

【 文章目录Alextnet参数计算VGG alexnet增强版VGG参数计算VGG作用GoogleNet 多分辨率融合全卷积神经网络RESNET结构特性有效性结构化图片特殊处理识别效果全局部卷积网络缺陷U-net图片生成网络VGG u-netAlextnet 参数计算 VGG alexnet增强版 VGG参数计算 VGG作用 GoogleNet 多…

LinuxGPIO操作和MTK平台GPIO

GPIO口配置是一个历史性的问题&#xff0c;不管我们使用什么MCU&#xff0c;单片机也好&#xff0c;ARM也好&#xff0c;都离不开驱动GPIO口。Linux下有一个宏&#xff0c;GPIO_GPIO_SYSFS&#xff0c;打开这个宏后&#xff0c;编译烧录到设备端&#xff0c;去看看sys/class/gp…

Linux cpu亲和力

最近在对项目进行性能优化&#xff0c;由于在多核平台上&#xff0c;所以了解了些进程、线程绑定cpu核的问题&#xff0c;在这里将所学记录一下。不管是线程还是进程&#xff0c;都是通过设置亲和性(affinity)来达到目的。对于[进程]的情况&#xff0c;一般是使用sched_setaffi…

卷积神经网络(目标分类)

文章目录目标分类基本框架数据准备数据扩充数据规范模型设计任务分类局部更改训练细节目标分类基本框架 数据准备 现有数据集的子集&#xff0c;网络采集&#xff0c;现有数据人工标注 数据扩充 原始数据切割&#xff0c;噪声颜色等像素变化&#xff0c;旋转平移 数据规范…

安卓9.0添加服务修改SELinux

#文章目录#前言#SELinux来源#SELinux基本框架#SELinux 在不同版本的表现#使用audit2allow工具生成SELinux 权限#完整代码#前言先推荐下之前的SELinux文章&#xff0c;但是那个是7.1的&#xff0c;在9.0上已经在差别很大的了。Android7.1 在init.rc 添加shell服务题外话~在企业里…

卷积神经网络-目标探测

文章目录目标探测介绍任务思路DPMRCNN1&#xff09;候选区域选择2&#xff09;CNN特征提取3&#xff09;分类与边界回归R-CNN总结优点缺陷FAST-RCNNFASTER-RCNNYOLO目标探测介绍 任务 分类获取坐标 目标探测 图片分割 思路 回归问题&#xff1a;利用神经网络进行目标识别&am…

相机视场角和焦距_镜头小讲堂(一)镜头的焦距

在刚购买完相机的时候&#xff0c;我们久会考虑需要什么样的镜头来配合机身来使用。而市场上的镜头种类是在太多了&#xff0c;所以我们就要学习了解下镜头都有哪些种类&#xff0c;选择哪种镜头比较有优势。这也是学习摄影必备的基础知识。01 镜头的焦距焦距是镜头的重要指标&…

C语言指定初始化器解析及其应用

由于笔者能力有限&#xff0c;文中如果出现错误的地方&#xff0c;欢迎大家给我指出来&#xff0c;我将不胜感激&#xff0c;谢谢&#xff5e;#指定初始化器的概念C90 标准要求初始化程序中的元素以固定的顺序出现&#xff0c;与要初始化的数组或结构体中的元素顺序相同。但是在…

递归神经网络

文章目录LSTM![在这里插入图片描述](https://img-blog.csdnimg.cn/20200609171449198.pngLSTM 4INPUTS 1outputs

CNN+RNN

文章目录相同点不同点组合意义组合方式图片标注基本思路模型设计&#xff0d;数据准备视频行为识别视频行为识别图片问答相同点 传统神经网络的扩展 前向计算产生结果&#xff0c;反向计算模型更新 每层神经网络横向可以多个神经元共存&#xff0c;纵向可以多层神经网络链接 …

深入理解Linux内核链表

之前写过的链表文章&#xff0c;再结合这篇&#xff0c;我觉得是一道硬菜。Linux内核链表C语言&#xff0c;链表大家五一节日快乐&#xff0c;我知道劳动节大家都辛苦了&#xff0c;吃点硬菜好顶住饿肚子~#一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构&#x…

GAN

文章目录生成对抗网络(GAN)基础生成对抗网络 优点&#xff1a;缺点&#xff1a;生成对抗网络深度GANDCGAN结构细节特征研究DCGAN总结条件GAN模型结构INFOGANInfoGAN: 自动学习z中部分变量意义Wasserstein GANGAN存在问题原因WGAN特点改进方法&#xff1a;生成对抗网络(GAN)基础…

1200可以读取modbus tcp_S7-1200 作 MODBUS TCP服务器

S7-1200 Modbus TCP 通信指令块STEP 7 V13 SP1 软件版本中的Modbus TCP库指令目前最新的版本已升至V4.0&#xff0c;该版本的使用需要具备以下两个条件&#xff1a;1. 软件版本&#xff1a; STEP 7 V13 SP1及其以上2. 固件版本&#xff1a; S7-1200 CPU 的固件版本V4.1图1. Mod…

Linux一定需要文件系统吗?

开篇题外话&#xff1a;对于Linux初学者来说&#xff0c;这是一个很纠结的问题&#xff0c;但这也是一个很关键的问题&#xff01; 一语破天机&#xff1a;“尽管内核是 Linux 的核心&#xff0c;但文件却是用户与操作系统交互所采用的主要工具。这对 Linux 来说尤其如…

迁移学习

文章目录为什么需要迁移学习模型Fine-‐tune![在这里插入图片描述](https://img-blog.csdnimg.cn/20200612000845217.png)保守训练层迁移Multitask Learning渐进式神经网络/Progressive Neural Networks域对抗零样本学习Self-‐taught learning为什么需要迁移学习 使用深度学习…

怎么撤回操作_微信又更新,拍一拍能撤回了

微信拍一拍功能在 6 月份刚上线时&#xff0c;「微信之父」张小龙就发朋友圈表示&#xff0c;微信史上仅需一行代码的有趣功能终于来了&#xff0c;拍一拍&#xff0c;像蚂蚁一样打招呼。拍一拍功能将大家在现实世界的肢体交流带到了虚拟世界&#xff0c;相信大家都有儿时和三俩…