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

免费企业信息查询网站郑州seo培训班

免费企业信息查询网站,郑州seo培训班,装修公司网站dede模板,正保建工网校Linux撰写C语言并编译的过程 1、预处理 将所有的#define删除,并且展开所有的宏定义,并且处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等。处理#include预编译指令,将被包含的文件插入到该预编译指令的位置。删除…

Linux撰写C语言并编译的过程

1、预处理

将所有的#define删除,并且展开所有的宏定义,并且处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等。处理#include预编译指令,将被包含的文件插入到该预编译指令的位置。删除所有注释“//”和“/* */”。添加行号和文件标识,以便编译时产生调试用的行号及编译错误警告行号。保留所有的#pragma编译器指令,后续编译过程需要使用它们。

命令:

gcc -E hello.c -o hello.i //将hello.c文件预处理至hello.i文件,-E指处理完停止

2、编译

编译过程就是对预处理完的文件进行一系列的词法分析,语法分析,语义分析及优化后生成相应的汇编代码。

命令:

gcc -S hello.i -o hello.s

3、汇编

将汇编语言转成二进制,但是还不能执行因为调用了一些库函数,这些库函数还没被解析,例如#include<stdio.h>的printf函数还未被解析,需要执行链接操作

汇编命令:

gcc -c hello.s -o hello.o

4、链接

链接也分为静态链接和动态链接,其要点如下:
静态链接是指在编译阶段直接把静态库加入到可执行文件中去,这样可执行文件会比较大。链接器将函数的代码从其所在地(不同的目标文件或静态链接库中)拷贝到最终的可执行程序中。为创建可执行文件,链接器必须要完成的主要任务是:符号解析(把目标文件中符号的定义和引用联系起来)和重定位(把符号定义和内存地址对应起来然后修改所有对符号的引用)。

这里补充一下静态库、动态库、库文件

库:

库是预编译的目标文件(object files)的集合,它们可以被链接进程序。
我们在写c语言的时候,经常会去包含一个.h的头文件,这个头文件就是库文件例如:<stdio.h>

动态库与静态库

静态链接是指在编译阶段直接把静态库加入到可执行文件中去,这样可执行文件会比较大。动态链接则是指链接阶段仅仅只加入一些描述信息,而程序执行时再从系统中把相应动态库加载到内存中去。

http://www.hrbkazy.com/news/26548.html

相关文章:

  • 网站设计价格大概是网站搭建需要什么
  • 哪个网站可以用MC皮肤做图片营销策划经典案例
  • 赤坎手机网站建设公司店铺推广方式有哪些
  • 一个交易网站开发的成本是多少搜索引擎优化中的步骤包括
  • 华为快速建站最近实时热点事件
  • 专业企业网站建设哪家服务好seo软件系统
  • 修改网站描述搜索引擎优化技术有哪些
  • 外贸联系网站百度产品
  • 做网站的收益全网线报 实时更新
  • 云电脑免费版永久使用江苏企业seo推广
  • 网站专题制作每日军事新闻
  • 建设项目环保验收网站台州关键词优化报价
  • 长春做网站新格公司人民日报今日新闻
  • 和规划网站如何北京网络推广公司排行
  • 公司网站建设沈阳个人免费建站软件
  • 个人微信做网站客服中国进入一级战备2023
  • 怎么做乞讨网站大数据营销系统多少钱
  • 做网站有高手没有重庆黄埔seo整站优化
  • 长寿做网站百度关键词指数查询工具
  • 做网站设计电脑买什么高端本好网络热词英语
  • 企业门户网站建设推广链接怎么自己搞定
  • 网络营销怎么推广南宁seo推广
  • 网站设计收费2345导航网址
  • 企业网站建设公司 丰台免费检测网站seo
  • 网站添加js广告位免费网上销售平台
  • 网站制作用的软件有哪些网络推广协议合同范本
  • 做内销网站网络营销的推广方式都有哪些
  • 用web设计购物网站的建设免费可用的网站源码
  • 站点建立网站的方法金华百度seo
  • 陕西网站建设公司哪有广州关键词排名推广