当前位置: 首页 > news >正文

东莞南城网站建设公司怎么样广告装饰公司名字

东莞南城网站建设公司怎么样,广告装饰公司名字,在线制作图片的免费软件,建设网站用户名这次扯一下嵌入式开发过程中经常用到的交叉编译器#xff0c;虽说在之前的文章也提到过这个问题#xff0c;不过上次是着重介绍为什么使用交叉编译器(主要是为了劝服自己从单片机的思想中脱离出来#xff0c;慢慢的接受嵌入式Linux开发的一些约定俗成的工具与方法)#xff…这次扯一下嵌入式开发过程中经常用到的交叉编译器虽说在之前的文章也提到过这个问题不过上次是着重介绍为什么使用交叉编译器(主要是为了劝服自己从单片机的思想中脱离出来慢慢的接受嵌入式Linux开发的一些约定俗成的工具与方法)而这次的重点一方面是科普交叉编译器的相关知识另一方面着重介绍怎么使用交叉编译器提供的各种工具完成相应的任务。 废话少说上干货。交叉编译器选择首先认可一点交叉编译器是一个软件工具那既然是一个软件那就必须知道这个软件是怎么来的目前分为两种情况。 芯片厂商提供的或者开源的和自己制作的交叉编译器 自己制作交叉编译器比较麻烦步骤单一但版本依赖关系大而且必须了解编译原理耗时费力所以我们果断使用芯片厂商提供的或者开源的交叉编译工具链交叉编译器命名规则arm-none-linux-gnueabi- 最最常用的一种 第一个单词表示编译得的什么目标架构的 第二个单词是厂商名可以是三星或者恩智浦等但开源的一般都为none 第三个单词表示程序编译出来的程序默认应用的系统因为编译器的标准C库等是与Linux兼容的 第四个单词gnu表示gnu项目 第四个单词eabi指的是嵌入式接口 可以简写为以下形式 arm-linux- arm-none-eabi- 表示编译出来的程序不支持操作系统交叉编译器源码目录介绍 交叉编译器包含的目录如上图所示bin目录相当于交叉编译的命令集合包含了数十种工具lib相当于交叉编译器运行的时候需要的库以及目标程序所需要的库。 在这里我们需要知道交叉编译器本身是一个程序软件所以交叉编译器的运行工作需要依赖库文件另一方面交缠编译器需要将源文件进行编译而编译得到的另一种架构上的代码运行也需要库文件。 这就说明交叉编译器需要两种库一种是它本身需要的另一种是编译出来的程序需要的添加交叉编译器命令到环境变量为了让交叉编译器的命令不用制定目录运行所以需要添加环境变量 (如果有不明白什么是环境变量的还是最好百度一下)方案一 echo $PATH查看当前系统环境变量 echo xxx PATH追加路径到环境变量只针对当前shell起作用方案二编辑/etc/environment文件添加环境变量可以永久保存但是修改完这个文件以后需要使用source /etc/environment命令将环境变量进行更新交叉编译器中嵌入式工具集合readelf 我们通常理解的程序软件都是运行在操作系统之上的但是有的程序不能在不同的操作系统之上运行。这是因为 我们最终编译出来的可执行程序分两部分真正的程序文件以及头信息 不同操作系统的头的格式是不同的Windows上称为PE头Linux上称为ELF头。 这个头部信息是专门给操作系统识别的。 开发裸机的时候需要使用objcopy这个命令将头部信息取出来留下真正的程序文件。因为带有头文件的程序刚开始不是可执行代码裸机状态下无法执行会导致程序一开始就卡死。 所以我们在裸机开发的时候在得到二进制文件以后再处理一下就是可以理解的了(说实话这一点我当时非常疑惑)readelf是读取可执行程序的头部信息objcopy是抽取头部信息然后丢弃掉 使用方法 read -h 可执行程序名 入口地址表示程序的运行地址所以一些病毒程序可能就是修改了这个入口地址相当于我们双击一个原来的程序的时候直接跳转到了病毒程序。 综上所述在可执行文件的头部有一个头信息可以被操作系统识别进行解析 。在Linux上使用file命令可以查看可执行文件的相关信息比如运行平台架构 。2. size 读取可执行程序的大小 包含代码段数据段bss段等等 当改变全局变量或者其他的时候可以看到代码信息的改变 关于程序的各种段也是一块比较大的知识点有机会补一篇文章(狗头)3.nm 符号列表的概念最精简最好用的工具。 可以查看可执行程序的符号表比如程序中的全局标签 T表示全局函数 D表示全局变量区 d表示 static 修饰的变量 t表示被 static 修饰的函数4.strip 剔除符号表。 相当于将刚才说的符号表进行剔除。 因为程序运行的时候不需要符号表 使用file命令可以查看是否剔除符号表 剔除符号表以后文件大小会变得更小一点 一般情况下生产过程最后将最后的程序进行剔除符号表 只能自己架构的工具剔除自己架构的程序的符号表5.strings 查看可执行程序的常量字符串 6.objcopy 表示将头部信息拷出来不然无法识别相应程序7.objdump 反汇编程序 objdump -d name 或者 -D表示反汇编文件8.addr2line 调试过程中将出错的结果及行号标志出来 但一般用不到了解更多技术文章欢迎关注我的个人公众号
http://wiki.neutronadmin.com/news/139930/

相关文章:

  • 网站引导页flash广告制作网站
  • 如何进行网站网站调试网站前端是做啥的
  • 实名网站审核中心在centos上做网站
  • 网站免费做招生宣传中考网络应用服务平台
  • 门户网站布局免费设计软件app
  • 网站公司建设网站价格潍坊软件网站开发
  • 浙江舟山建设厅网站网站内容建设总结
  • 网站设计公司收费标准企业名称预先核准网上申请
  • 铁路工程建设材料预算价格2网站百度关键词seo推广
  • wordpress个人站主题做竞价的网站有利于优化吗
  • 机械技术支持 东莞网站建设最彻底的手机优化软件
  • 三合一网站建设什么意思房山建站公司
  • 西部数码网站管理助手3.0教程廊坊北京网站建设
  • 无锡网站建设公司地址如何卸载电脑是的wordpress
  • 网站空间数据库上传wordpress 添加到主屏
  • wordpress下载主题后怎么用上海seo招聘
  • 建设部网站6.1文件哪家公司的网站做得好
  • 株洲网站网络推广怎么做儿童网页设计素材
  • 外贸的订单在哪个网站找中国铁路总公司建设管理部网站
  • 平面设计专业网站潍坊网站排名公司
  • 建设工程材料网站三水建设局网站
  • 张家港市住房城乡建设局网站蓝色企业网站模板
  • 网站开发分析网页制作网站建设
  • 网站模板文件扫描如何对网站进行管理
  • 微信网站如何做哪里有app项目开发
  • 建立手机个人网站python基础教程编程题
  • 广州建网站的网络公司企业网络推广外包
  • 网站建设 三乐大港建站公司
  • 建站如何赚钱如何通过网站自己做网站
  • dw建立网站之后怎么做wordpress 插件 证书