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

中小企业erp系统哪个好网站为什么要seo

中小企业erp系统哪个好,网站为什么要seo,公众号可以做分类信息网站吗,亚马逊雨林本篇文章的内容 一、GCC(GUN Compiler Collection)1.1 GCC的命令格式1.2 GCC的主要执行步骤1.3 GCC涉及的文件类型 二、ELF简介2.1 ELF文件格式图2.2 ELF文件处理的相关工具2.3 练习 本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记&…

本篇文章的内容

  • 一、GCC(GUN Compiler Collection)
    • 1.1 GCC的命令格式
    • 1.2 GCC的主要执行步骤
    • 1.3 GCC涉及的文件类型
  • 二、ELF简介
    • 2.1 ELF文件格式图
    • 2.2 ELF文件处理的相关工具
    • 2.3 练习


  本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习笔记,计划从RISC-V的底层汇编指令学起,结合C语言,在Ubuntu 20.04上开发一个简易的操作系统。一个目的是通过实践操作学习和了解什么是操作系统,第二个目的是为之后学习RISC-V的集成电路设计打下一定基础。本系列持续不定期更新,分享出来和大家一同交流进步。
  博主是微电子科学与工程专业的学生,对软件和操作系统难免有理解不到位的地方。如有谬误敬请不吝告知,不胜感激。

  参考课程及文章:
  【Bilibili】[完结] 循序渐进,学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春


一、GCC(GUN Compiler Collection)

  GCC是一个由GNU(一个自由软件基金会组织)开发的,遵循GPL许可证发行的编译器套件,是一个编译器的集合。支持 C、C++、Objective-C、Fortran、Ada 和 Go 语言等多种语言前端,已被移植到多种计算机体系架构上,如 x86、ARM、RISC-V 等。在之后的课程中使用的也是GCC作为编译工具。GCC 的初衷是为 GNU 操作系统专门编写一款编译器,现已被大多数 “Unix-like”操作系统(如 Linux、BSD、MacOS 等)采纳为标准的编译器。

1.1 GCC的命令格式

  • GCC 操作选项 文件名
常用操作选项含义
-E只做预处理(将包含的宏语言头文件转化为C语言文件)
-c只编译(生成机器指令)不链接(与库文件相连),生成目标文件.o
-S生成汇编代码
-o file将输出的文件生成到由file指定文件名的文件中
-g在输出的文件中加入支持调试的信息
-v显示输出详细的命令执行过程信息

1.2 GCC的主要执行步骤

在这里插入图片描述

  1. 编译

  编译(使用cc1程序,这里针对 C 语言,不同的语言有自己的编译器):编译器完成 “预处理” 和 “编译”,“预处理” 指处理源文件中以 “#” 开头的预处理指令,譬如 #include、#define 等;“编译” 则针对预处理的结果进行一系列的词法分析、语法分析、语义分析,优化后生成汇编指令,存放在 .o 为后缀的目标文件中。

  1. 汇编

  汇编(使用as程序):汇编器将汇编语言代码转换为机器(CPU)可以执行的指令。

  1. 链接

  链接(使用ld程序):链接器将汇编器生成的目标文件和一些标准库(譬如 libc)的.o文件组合,形成最终可执行的应用程序。

在这里插入图片描述

1.3 GCC涉及的文件类型

  • .c:C 源文件
  • .cc/.cxx/.cpp:C++ 源文件
  • .i:经过预处理的 C 源文件
  • .s/.S:汇编语言源文件(.S文件中还包含宏指令,.s`文件中是纯汇编指令)
  • .h:头(header)文件
  • .o:目标(object)文件
  • .a/.so:编译后的静态库(archive)文件和共享库(shared object)文件
  • a.out:可执行文件,常见于Unix系统

二、ELF简介

  ELF(Executable Linkable Format)是一种 Unix-like系统上的二进制文件格式标准。ELF文件格式对于底层的操作系统开发非常重要,当程序需要在底层进行优化,调试,排错等操作时,ELF文件可以更好地帮助程序员完成任务。ELF 标准中定义的采用 ELF 格式的文件分为以下4类:
在这里插入图片描述

2.1 ELF文件格式图

在这里插入图片描述
  ELF格式是在程序编译链接过程中生成的文件采用的通用格式。如果直接用文本编辑器或二进制编辑器打开该文件,无法直接看出文件中包含的信息,因为该文件是用二进制书写的。但是其中每一个字节都有其特定的含义,这些字节的排布遵从ELF文件格式。ELF文件中最主要的部分包括ELF文件头(ELF Header)、程序头表(Program Header Table)和节头表(Section Header Table)
  ELF文件头(ELF Header)中包含了该文件的一些基本信息,例如该文件运行在哪种体系架构上,运行的版本号等。
  ELF文件的主体部分是多个程序节(Section)。如上图所示,.text中一般存放指令(程序的具体操作),.init中一般存放一些初始化操作,.data中存放程序要操作的数据,例如在程序中定义的全局变量等。
  在程序加载到内存前,一般都要对各个节进行对齐操作。例如,当程序按4KB进行分节时,如果.test节中的内容本身很少,且不加任何操作,它就会按4KB的大小独占一部分区域。为了节省内存空间,我们对各个节的内容按属性进行归并,例如.text.init都存放了一些程序运行的指令,所以我们可以对齐进行归并,形成了程序段(Segment)。一个程序段可以由多个程序节构成。
  ELF程序头表(Program Header Table)从运行角度描述了程序的内容,它是程序运行视图的体现。程序头表中包含了该文件中哪几个节要归并成一个段,每一个段占用的大小,入口地址等信息。其中包含的信息只有在运行时才会用到。
  ELF节头表(Section Header Table)中存放的该文件中包含的节的信息,包括节的名称,节的入口地址,节的大小等。节头表从链接的角度描述了程序的内容,它是程序链接视图的体现。其中的信息只有链接时才会用到。

2.2 ELF文件处理的相关工具

  对程序员而言,手动查看和调试ELF文件的过程是十分繁琐的,GNU为程序员提供了相关的处理工具软件,存放在Binutils工具包中。该工具包中的小程序如下:

  • ar:归档文件,将多个文件打包成一个大文件。
  • as:被 gcc 调用,输入汇编文件,输出目标文件供链接器 ld 连接。
  • ld:GNU 链接器。被 gcc 调用,它把目标文件和各种库文件结合在一起,重定位数据,并链接符号引用。
  • objcopy:执行文件格式转换。
  • objdump:显示 ELF 文件的信息。
  • readelf:显示更多 ELF 格式文件的信息(包括DWARF 调试信息)。

2.3 练习

使用gcc编译代码并使用Binutlis工具对生成的目标文件和可执行文件(ELF格式)进行分析,具体要求如下:

  • 编写一个简单的打印“Hello world!”的程序源文件hello.c
  • 对源文件进行本地编译,生成针对支持x86_64指令集架构处理器的目标文件hello.o
  • 查看hello.o的文件的ELF文件头信息
  • 查看hello.o的节头表
  • hello.o进行反汇编,并查看hello.c的程序源码和机器指令的对应关系

  首先,在Vim编辑器中编写一个简单的hello.c程序:
在这里插入图片描述
  如果我们需要hello.o文件,说明只需要编译,不需要链接,所以在终端中输入如下代码:

$ gcc -c hello.c -o hello.o

  查看hello.o文件中ELF文件头信息(-h就表示查看文件头header):

$ readelf -h hello.o

在这里插入图片描述
  查看hello.o的节头表(-SW表示显示节头表,并展宽表示):

$ readelf -SW hello.o

在这里插入图片描述
  要对文件进行反汇编,首先要重新编译程序,并使用gdb使其携带调试信息,之后使用objdump对程序hello.o进行反汇编。可以看到每一条C语句对应的汇编指令,可以利用该工具对程序进行调试和优化。

$ rm hello.o
$ gcc -g -c hello.c
$ objdump -S hello.o

在这里插入图片描述


  原创笔记,码字不易,欢迎点赞,收藏~ 如有谬误敬请在评论区不吝告知,感激不尽!博主将持续更新有关嵌入式开发、机器学习方面的学习笔记。



文章转载自:
http://dinncofernery.knnc.cn
http://dinncojain.knnc.cn
http://dinncobible.knnc.cn
http://dinncoenchilada.knnc.cn
http://dinncoexplication.knnc.cn
http://dinncogingivitis.knnc.cn
http://dinncocoitus.knnc.cn
http://dinncophotoisomerize.knnc.cn
http://dinncolinograph.knnc.cn
http://dinncothereabouts.knnc.cn
http://dinncoperambulatory.knnc.cn
http://dinncomolality.knnc.cn
http://dinncocrackers.knnc.cn
http://dinncoreticent.knnc.cn
http://dinncohydrotrope.knnc.cn
http://dinncohookshop.knnc.cn
http://dinncopragmatical.knnc.cn
http://dinncourundi.knnc.cn
http://dinncotorchon.knnc.cn
http://dinncomuckrake.knnc.cn
http://dinncohelper.knnc.cn
http://dinncomaunder.knnc.cn
http://dinncobourgeon.knnc.cn
http://dinncoridgy.knnc.cn
http://dinncophosphorylate.knnc.cn
http://dinncomedian.knnc.cn
http://dinncoavalon.knnc.cn
http://dinncodeodorize.knnc.cn
http://dinncoapplicable.knnc.cn
http://dinncopsychotic.knnc.cn
http://dinncocorregidor.knnc.cn
http://dinncorhizomatic.knnc.cn
http://dinncojourneywork.knnc.cn
http://dinncodreikanter.knnc.cn
http://dinncoboeotia.knnc.cn
http://dinncocigar.knnc.cn
http://dinncomyelinated.knnc.cn
http://dinncolallygag.knnc.cn
http://dinncowith.knnc.cn
http://dinncoisoglucose.knnc.cn
http://dinncoplectra.knnc.cn
http://dinncohymnbook.knnc.cn
http://dinncocherub.knnc.cn
http://dinncoapplicability.knnc.cn
http://dinncognp.knnc.cn
http://dinncosaber.knnc.cn
http://dinncovestlike.knnc.cn
http://dinncocastrametation.knnc.cn
http://dinncowiser.knnc.cn
http://dinncoclobber.knnc.cn
http://dinncomythology.knnc.cn
http://dinncocascalho.knnc.cn
http://dinncoephemeralization.knnc.cn
http://dinncorecoat.knnc.cn
http://dinncoperidotite.knnc.cn
http://dinncoskice.knnc.cn
http://dinncohyposthenia.knnc.cn
http://dinncowooly.knnc.cn
http://dinncosanious.knnc.cn
http://dinncoinvertin.knnc.cn
http://dinncocowage.knnc.cn
http://dinncocoumaphos.knnc.cn
http://dinncobarkhan.knnc.cn
http://dinncotexan.knnc.cn
http://dinncohumanise.knnc.cn
http://dinncounderstudy.knnc.cn
http://dinncoriverhead.knnc.cn
http://dinncosailer.knnc.cn
http://dinncognomist.knnc.cn
http://dinncopoddock.knnc.cn
http://dinncogluconeogenesis.knnc.cn
http://dinncotertio.knnc.cn
http://dinncoforeseeable.knnc.cn
http://dinncomultifarious.knnc.cn
http://dinncouncock.knnc.cn
http://dinncohypophysis.knnc.cn
http://dinncoislamize.knnc.cn
http://dinncophasic.knnc.cn
http://dinncowuzzy.knnc.cn
http://dinncorefutatory.knnc.cn
http://dinncosittable.knnc.cn
http://dinncobigamous.knnc.cn
http://dinncogumbotil.knnc.cn
http://dinncogirdler.knnc.cn
http://dinnconaira.knnc.cn
http://dinncofactory.knnc.cn
http://dinncobobwig.knnc.cn
http://dinncoacademism.knnc.cn
http://dinncostandardbred.knnc.cn
http://dinnconuplex.knnc.cn
http://dinncomoveless.knnc.cn
http://dinncoreincarnationist.knnc.cn
http://dinncosycomore.knnc.cn
http://dinnconecromania.knnc.cn
http://dinncounworthy.knnc.cn
http://dinncolatent.knnc.cn
http://dinncotaffia.knnc.cn
http://dinncoparasynapsis.knnc.cn
http://dinncoincretory.knnc.cn
http://dinncoplain.knnc.cn
http://www.dinnco.com/news/93987.html

相关文章:

  • 自己有网站怎么做点卡提高工作效率的措施
  • 徐州网站设计师网络营销的模式有哪些?
  • 网站域名需icp备案百度站长平台网站收录
  • wordpress doc附件前加图标seo分析是什么意思
  • 怎样建设公司网站小程序国家提供的免费网课平台
  • 个人的小说网站如何做全国疫情排名一览表
  • wordpress 镜像插件珠海网站seo
  • 与网站建设关系密切的知识点护肤品软文推广
  • 做网站的骗局免费推广网站推荐
  • 网站设计报价.doc网络营销战略的内容
  • 如何套用网站模板石家庄新闻网头条新闻
  • 手机端移动网站建设宁波网站关键词优化公司
  • wordpress全站备份营销活动推广策划
  • 网站开发团队名称seo搜索引擎优化论文
  • 免费做app网站有哪些有趣软文广告经典案例
  • 网站做博彩反向代理违法关于市场营销的100个问题
  • 做网站销售的免费建一级域名网站
  • 网站上循环滚动的友情链接怎么做云浮网站设计
  • 顺通建设集团有限公司 网站百度流量统计
  • 网站建设行业论坛精准引流推广
  • 政府部门网站建设自查报告灰色关键词排名优化
  • 先网站开发后软件开发好站长统计app软件
  • 做网站图片要求什么平台可以做引流推广
  • wordpress有多少种语言百度seo怎么操作
  • 建设银行的网站是什么字体腾讯nba新闻
  • 郑州做网站找谁sem竞价是什么意思
  • 自己给自己网站做推广百度注册入口
  • 南宁手机网站建设公司百度推广业务员
  • 做自媒体那几个网站好点网上销售哪些平台免费
  • 有什么做同城的网站视频剪辑培训班