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

密云建站推广成都最新热门事件

密云建站推广,成都最新热门事件,提升审美的网站,那个可以做棋牌网站目录 前言 一、gcc编译 二、程序的编译过程 三、gcc查看编译过程 1.预处理阶段 2.编译 3.汇编 4.链接 动静态库链接的内容 动静态库链接的优缺点 5.总结记忆 前言 在前面我们学会使用vim对文件进行编辑#xff0c;如果是C或者C程序#xff0c;我们编辑好了内容…目录 前言 一、gcc编译 二、程序的编译过程 三、gcc查看编译过程 1.预处理阶段 2.编译 3.汇编  4.链接  动静态库链接的内容 动静态库链接的优缺点 5.总结记忆  前言 在前面我们学会使用vim对文件进行编辑如果是C或者C程序我们编辑好了内容还需要编译此时就可以使用gcc和g进行编译了。 一、gcc编译 编译的方法很简单gcc编译c语言文件g编译c/c文件后面接你编辑好的文件名就行如下。编译完成后生成了可执行文件a.out。 注意虽然linux文件不看后缀但是gcc/g会看后缀只有cpp、c、cc、cxx后缀才能被编译。如下编译会报错。 二、程序的编译过程 C程序的编译需要以下四个阶段  预处理、编译、汇编、链接。 我们先来了解一下编译器的发展史         由于计算机只认识二进制一开始程序员使用二进制与计算机沟通后面利用二进制写出来了汇编编译器使汇编代码可以转化为二进制代码因此程序员可以使用汇编语言进行程序编写后来又使用汇编语言编写了C语言编译器因此程序员又可以使用C语言进行代码的编写这样一来大大的降低了与机器沟通的难度。         总结一下就是从二进制到汇编再到C语言 C程序编译的阶段就是这部发展史的反向操作。从C到汇编再到二进制。 下面是编译各个阶段的主要工作 预处理阶段 头文件展开 去注释 条件编译 宏替换 编译将C语言编译成汇编代码汇编将汇编代码转为可重定位的二进制文件链接链接生成可执行文件 三、gcc查看编译过程 1.预处理阶段 gcc -E 预处理阶段处理完就停止运行如下-o code.i是将结果输出到 code.i。 我们通过vim来看看两份文件的区别。 我们发现code.i将头文件展开了变成了800多行的代码并且中间缺失的部分是我们所注释掉的这也印证了gcc -E 是预处理结束就停止。 2.编译 gcc -S是到编译工作做完就停止。运行如下这里我们已经有了code.i因此直接拿预处理过的文件继续向下编译。 我们vim code.s查看一下都是汇编代码  3.汇编  gcc -c 执行到汇编工作完成就停下来。 vim code.o查看一下都是乱码我们已经看不懂了。 用二进制方式查看一下  od 文件后发现都是二进制。code.o文件已经相当于windows里面的obj文件了。该二进制文件还没有进过链接还无法执行。 4.链接  链接是链接上库里面的内容.o文件系统库就可以生成可执行程序了。 这里的系统库分为静态库.a和动态库.so。 我们使用ldd mybin 来查看我们的可执行程序依赖了那些库。这里发现依赖的三个库都是动态库。 其他库我们可能不清楚但是图片中的libc.so.6我们对他进行拆分去掉前面的lib再去掉后面的.so.6。我们发现只剩下了一个c这就是大名鼎鼎的C标准库。 并发现这个库存在我们系统里他的路径是 /lib64/libc.so.6。 动静态库链接的内容 动态库是C/C或者其他第三方提供的所有方法的集合被所有程序以链接的方式关联起来这也叫动态链接。 动态链接过程编译器会告诉该程序需要链接的库地址到时候程序通过这个地址找到库里面的内容并链接起来。 很多文件或者程序都会依赖动态库如果缺失这个动态库代码就执行不起来程序也会崩掉都会收到影响。 静态库是C/C或者其他第三方提供的所有方法的集合被所有程序以拷贝的方式将需要的代码拷贝到自己的可执行程序中 。 静态库的缺失只会影响自己不会影响到其他程序。 动静态库链接的优缺点 动态库链接 优点形成的可执行程序体积小节省资源。 缺点可执行程序依赖动态库库文件丢失程序崩溃。 静态库连接 优点形成的可执行程序体积太大浪费资源 缺点可以独立运行。 我们分别动静态链接测试一下 普通gcc编译为动态链接生成code-d 静态链接可能需要安装静态库使用下面代码 sudo yum install -y glibc-static sudo yum install -y libstdc-static 安装好之后进行静态链接生成code-s 静态链接在普通编译后面接上一个-static就可以了。 我们发现他们的大小相差非常大有着百倍的差距。这也是为啥gcc默认采用动态链接的原因静态链接文件太大了。 5.总结记忆  之前的阶段这么多每一次执行的代码都不一样但其实很好记忆。 编译方式 -ESc   后缀.iso 分别代表预处理、编译、汇编 ESc注意前面两个大写后一个小写这是键盘左上角的三个 iso为系统镜像后缀记住这两点就可以了。
http://www.zqtcl.cn/news/748413/

相关文章:

  • 购买网站平台如何做分录泰安网站开发公司
  • 音乐介绍网站怎么做的光辉网络 石家庄网站建设
  • 沈阳网站建设搭建天元建设集团有限公司开票信息
  • 昆明网站建设公司哪家好预约网站模板
  • 自己怎么申请网站空间浙江省建设科技推广中心网站
  • 网站后台管理系统怎么添加框wordpress上传之后
  • 网站编辑属于什么行业义乌做网站哪家好
  • 沂水网站开发移动知识库管理系统
  • 成都有哪些网站建设的公司河南网站建设优化推广
  • 小说投稿赚钱的网站网站后台管理系统多少钱
  • 中国建设银行国际互联网网站网站是用什么做的
  • 做建设网站的活的兼职网络推广专员的岗位职责是
  • 韩国 网站设计保定网站开发公司
  • 发外链的网站都要企业注册网站建设的基本概念
  • 网站管理员有哪些权限中文域名网站好不好优化
  • wordpress主题 资源站关闭wordpress自动更新
  • 网站排名怎么上去创建全国文明城市我们应该怎么做
  • 网站 ftp自助建站信息网
  • 做珠宝的网站wordpress获取相关文章
  • 网站开发视频 百度云视频资源的网站怎么做
  • 写出网站建设的基本流程鹤山市城乡住房建设部网站
  • 万网域名注册后如何做网站教学网络传奇游戏
  • 岳阳网站建设方案免费网站模板建设
  • 郑州响应式网站制作如何做公众号微信
  • 专业公司网站建设精准引流推广团队
  • 蔡甸建设局网站怎么用云校建设学校网站
  • 建立网站需要哪些东西软件开发流程包括
  • 网站的pdf目录怎么做的网站编写
  • 南宫企业做网站wordpress图片显示距离
  • 青岛红岛做网站百度怎么打广告