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

商业网站建设目标高端定制网站设计公司

商业网站建设目标,高端定制网站设计公司,惠州做网站电话,保定免费建站全文目录 #x1f600; 前言#x1f642; 翻译环境和执行环境#x1f636; 编译和链接#x1f635;‍#x1f4ab; 预编译#xff08;预处理#xff09;#x1f635;‍#x1f4ab; 编译#x1f635;‍#x1f4ab; 汇编#x1f635;‍#x1f4ab; 链接 #x1… 全文目录 前言 翻译环境和执行环境 编译和链接‍ 预编译预处理‍ 编译‍ 汇编‍ 链接 总结 前言 翻译环境和执行环境 翻译环境 在这个环境中源代码被转换为可执行的机器指令二进制的指令。 执行环境 它用于实际执行代码。 我们日常使用的VS2019就是一个集成开发环境结合了编辑、编译、链接、调试等多种功能其中编译使用的是 cl.exe 链接使用的是 link.exe 文件中不同的编辑器使用的可能不同。 编译和链接 组成一个程序的每个源文件通过编译过程分别转换成目标代码object code。每个目标文件由链接器linker捆绑在一起形成一个单一而完整的可执行程序。链接器同时也会引入标准C函数库中任何被该程序所用到的函数而且它可以搜索程序员个人 的程序库将其需要的函数也链接到程序中。 其中编译又分为预编译、编译、汇编 三步操作。 为了方便演示接下来使用Linux下的gcc进行实验。 实验代码 // test.c #include stdio.hextern Add(int a, int b);// 测试注释和#define #define Max 100int main() {int z Max;int a 10;int b 20;int c Add(a, b);printf(%d\n, c);return 0; }// add.c int Add(int a, int b) {return a b; }‍ 预编译预处理 我们可以使用下面的指令将程序编译停留在预编译后 gcc test.c -E -o test.i gcc add.c -E -o add.i打开test.i 可以发现多了很多行同时注释的代码和 #define 都不见了 再从/usr/include 这个路径下打开stdio.h 这个文件可以发现 test.i 中多出来的就是stdio.h的内容 那么就可以确定预编译阶段进行了一下几个操作 头文件的包含 #include#define 定义符号的替换注释的删除 以上三个都是属于文本操作 ‍ 编译 将程序停留在编译之后 gcc test.i -S -o test.s gcc add.i -S -o add.s打开test.s 可以看到 这些都是之前在VS 中看到的反汇编。也就是说编译将C语言代码翻译成了汇编代码。其过程相当复杂主要是做了一下几个操作 语法分析词法分析语义分析符号汇总 符号汇总将文件中的全局符号汇总出来局部的符号不管 基本上就是函数名 ‍ 汇编 将程序停留在编译之后 gcc test.s -c -o test.o gcc add.s -c -o add.o生成的就是目标文件。在Windows下目标文件的后缀时.objLinux下的后缀时.o。 打开test.o 发现全是乱码也就是说汇编将汇编指令翻译成了二进制的指令。 但是这时候在编译阶段进行的符号汇总就派上用场了这些符号在汇编阶段被制成了符号表。二进制文件我们时看不懂的在Linux下可执行程序的格式是elf 所以我们可以借助readelf 来查阅可执行文件 readelf -s test.oreadelf -s add.o汇编就是对每个编译阶段汇总的符号赋予地址如果在文件中找不到该符号的有效内容赋予无效地址即 ‍ 链接 链接阶段做的就是 合并段表符号表的合并和重定位 合并段表就是将每个目标文件的各个段整合起来符号表的合并就是将各个目标文件的符号表合并成一个表并检查每个符号的地址 总结 程序的编译和链接过程是很复杂的能力有限只能学习这些大概的概念。 Linux 指令汇总 // 编译的各个阶段 ESc —— iso// 查看目标文件 readelf -[options] filename// 头文件路径 /usr/include
http://www.pierceye.com/news/207439/

相关文章:

  • 怎样在外国网站开发客户网页设计要学些什么
  • wap网站psd扬中论坛扬中人家
  • 昆山做网站费用最好的品牌设计公司
  • 宁波建站模板重庆秀山网站建设价格
  • 网站设计制作新报价图片查域名网站
  • 网站建设就找奇思网络网站信息备案管理系统
  • wordpress 网站生成app互联网装修公司叫什么
  • 揭阳做网站哪个好黑群晖架设wordpress
  • 网站建设与维护经营范围pc官方网站
  • 龙岗网站建设多少钱设计工作室经营范围
  • 今天建设银行网站无法登录做网站菠菜什么意思
  • 网站伪静态如何配置文件设置网站首页
  • 太原网站建设模板站将电脑做的网站放到外网
  • 网站建设怎么用长尾做标题北京手机站建站
  • 什么是网站功能需求wap网页文字游戏
  • 网站开发者模式怎么保存网站建设3d插件
  • 域名备案网站要不要关景县有专业做网站人员吗
  • 门户网站建设方案ppt公司网站建设全包
  • 网站建站的流程网站建设服务那家好
  • 湖南平台网站建设制作企业网站关联优化
  • 优秀网站设计作品大连seo外包
  • 共享空间网站开发公司做网站 最好的开源cms
  • 免费图片素材网seo wordpress主题
  • ipad可以做网站推广吗wordpress主题中文
  • 自己做网站要会什么软件下载wordpress 小工具代码
  • 视频拍摄及制作培训网站优化有什么用
  • 沈阳网站排名公司网站开发专业怎么样
  • 电影院网站建设方案网络维护是什么职业
  • 网站建设需要的公司wordpress考试主题
  • 企业网站管理系统多站多语言版电子书推送网站怎么做