我们写的代码,仅仅是文本文件(txt),不管后缀怎么变,终究是文本文件,计算机只能显示,不能做事(执行)。

文本文件通过“编译、链接”,成为可执行文件(windows下是exe):

编译:生成.o文件,也被称为“对象文件”、“目标文件”。

链接:将有关的目标文件连接起来,使所有的.o文件成为一个可执行的整体。

为什么要生成“.o文件”?这不是多此一举嘛?

——大型程序往往需要分文件写,每个源文件会生成对应的.o文件,修改其中一个源文件,编译时只重新编译该文件。如果编译直接生成最终文件,改一个文件则整个工程都要重新编译。

.o好比活字印刷的一个字,错了直接重刻一个字就好了,而不用整版重刻。

编译又分为“预编译”、“编译”两个步骤:

预编译(Preprocessing):读取c源程序,对其中的伪指令(以#开头的指令)进行替代。【好比发帖时,不能出现的字用X代替】,输出的还是文本文件。

编译(Compilation):将预编译后的文件翻译成机器码,生成.o文件。

(某些编译器会先转为汇编码,然后再转为机器码,所以有的地方会说编译包括“预编译、编译、汇编”3步)

打个比方——

写代码:买菜

预编译:切菜

编译:炒菜

链接:上桌

转:C语言的编译链接过程的介绍

11:42:30 C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接.编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程.链接 ...

[转]C++编译链接过程详解

C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接.编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程.链接是把目标文件.操作 ...

C语言编译链接

转载请标明: 编译链接是使用高级语言编程所必须的操作,一个源程序只有经过编译.链接操作以后才可以变成计算机可以理解并执行的二进制可执行文件. 编译是指根据用户写的源程序代码,经过词法和语法分析,将高级 ...

C语言预处理 编译 汇编 链接四个阶段

c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接. 编译过程 编译过程又可以分成两个阶段:编译和会汇编. 编译 编译是读取源程序(字符流),对之进行词法和语法的分析,将高 ...

C语言程序经过编译链接后形成二进制映像文件的组成

C语言程序经过编译链接后形成二进制映像文件由栈,堆,数据段,代码段组成,其中数据段又分为:只读数据段,已经初始化读写数据段,未初始化数据段(BSS段).如下图所示: 1.栈区(stack):由编译器自 ...

C++开始前篇,深入编译链接(3)

一,COMMON块 什么是COMMON块,这是一种机制,早期的Fortran没有动态分配空间的机制,程序员必须事先声明它所需要的临时使用空间的大小.Fortran把这种空间叫做COMMON块,当不同的 ...

C++开始前篇,深入编译链接

C++开始,为什么要写这个东西,因为按照课堂进度的话,现在的C++已经学到模板以及重载了,有时却仍然因为一些小问题无法解答,原因是忘记了开始时学到的知识,深知不能像猴子掰棒子一样,掰一个扔一个,因此, ...

Koala – 开源的前端预处理器语言图形编译工具

koala 是一个前端预处理器语言图形编译工具,支持 Less.Sass.Compass.CoffeeScript,帮助 Web 开发者更高效地使用它们进行开发.跨平台运行,完美兼容 Windows. ...

linux 编译,链接和加载

1.   序 最近在折腾各种.so,碰到了一些问题,一开始对于很多错误也没有头绪,茫然不知所措.索性化了一天多时间将<>中部分内容略读了一遍 ...

李洪强漫谈iOS开发&lbrack;C语言-004&rsqb;-开发概述程序设计语言程序编译过程

汇编语言 指令用特定的名字来标记,这就是汇编语言 人比较容易看懂汇编语言 汇编直接和程序一一对应的 有汇编器把程序翻译成机器码 把高级语言编译成计算机识别的语言 程序编译过程 命令行 UNIX 系统中 ...

随机推荐

ASP&period;NET Core 中文文档 第四章 MVC(3&period;4)如何使用表单

原文:Working with Forms 作者:Rick Anderson.Dave Paquette.Jerrie Pelser 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) 这篇文章演示了 ...

JMS中的消息通信模型

1. MQ简介: 消息队列(Message Queue,简称MQ),是应用程序与应用程序之间的一种通信方法.应用程序通过发送和检索出入列队的针对应用程序的数据 - 消息来通信,而无需专用连接来链接它们 ...

IN和exists 之间的比较

IN和exists 之间的比较 NOT IN 和 NOT EXISTS之间的比较

jquery之前后台交互

//js文件 function getMinatoSingleGoodsCategorys(type){ $("#"+type+"MinatoGoodsCategoryI ...

hibernate从数据库中自动生成

计应134(实验班) 李佳鸿 DB Brower配置 1.依次选择window-Open Perspective-MyEclipse Explorer

深入理解Session与Cookie&lpar;一)

Session,Cookie简介: Session和Cookie的作用都是为了保持用户与后端服务器的交互状态,但是各自都有缺陷: Cookie: 随着Cookie的个数的增多和访问量的增加,它占用的网 ...

Java将数据按列写入Excel并设置格式(字体、背景色、自动列宽、对齐方式等)

本文使用jxl.jar工具类库将数据按列写入Excel并设置格式(字体.背景色.自动列宽.对齐方式等). /** * 按列写入Excel并设置格式 * * @param outputUrl * 输出路 ...

让运行着的ASP&period;NET Web程序重新启动

在运行中的Web程序,会随时的监测这web.config文件的变化,只要web.config文件有变动,那么Application就会重新启动.所以,在一个工具类中我们可以封装一个方法,该方法用来重新 ...

2&period;14 加载Firefox配置

2.14 加载Firefox配置(略,已在2.1.8讲过,请查阅2.1.8节课) 回到顶部 2.14-1 加载Chrome配置 一.加载Chrome配置chrome加载配置方法,只需改下面一个地方,u ...

http 三次握手

1.三次握手 目的:主要规避由于网络阻塞,传输不畅等原因导致服务器端端口一直被占用,无法释放端口资源.(想想假设只要一次就建立连接,服务器响应后浏览器若是没收到数据,等待一段时间后,网络超时,浏览器重 ...

c语言编辑编译链接,C语言的“编译、链接”相关推荐

  1. c语言编辑机器人行走,c语言课程设计报告-步行机器人.doc

    c语言课程设计报告-步行机器人 PAGE 第 PAGE \* Arabic \* MERGEFORMAT 17 页第 PAGE \* Arabic \* MERGEFORMAT 17 页第 PAGE ...

  2. 用c语言编辑一个通讯录,C语言实现一个通讯录

    实现一个通讯录,通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名.性别.年龄.电话.住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改 ...

  3. c语言编辑三色球问题,C语言实例编程:三色球问题

    若一个口袋中放有12个球,其中有3个红的.3个白的和6个黒的,问从中任取8个共有多少种不同的颜色搭配? *问题分析与算法设计 设任取的红球个数为i,白球个数为j,则黒球个数为8-i-j,根据题意红球和 ...

  4. c语言编辑数学公式,用C语言编个公式数学公式求助

    满意答案 zsao1125 2018.11.08 采纳率:54%    等级:12 已帮助:17631人 函数名及解释:int abs(int i) 返回整型参数i的绝对值double cabs(st ...

  5. C语言编辑个人信息,C语言实现的个人信息管理系统

    #include "main.h" void find_id(int id) { int i=0; for(i=0;iname); /**********ID输入********* ...

  6. c语言编辑删除学生,c语言学生管理系统之学生信息删除

    void  DeleteStudentInformation(LINK head , long w)                                              //删除 ...

  7. C语言编译流程:预处理、编译、汇编、链接

    流程: 预处理:展开头文件/宏替换/去掉注释/条件编译                       (test.i main .i) 编译:检查语法,生成汇编                      ...

  8. 使用gcc编译和链接C语言程序,用GCC编译链接程序--编译链接器GCC常用功能(菜鸟级)...

    转载自:http://daimajishu.iteye.com/blog/1089740 对gcc认识的一篇文章,就转载了,截取了自己感兴趣部分. 一,GCC编译器简介 虽然我们称Gcc是C语言的编译 ...

  9. c语言多文件程序编译和链接,C语言知识汇总 | 04-源文件、可执行程序、编译与链接...

    一.源文件(Source File) 在开发软件的过程中,需要将编写好的代码(Code)保存到一个文件中,这样代码才不会丢失,才能够被编译器找到,才能最终变成可执行文件.这种用来保存代码的文件就叫做源 ...

最新文章

  1. GreenDao 使用方法:
  2. 获得焦点时选择文本框的所有内容(Vanilla JS或jQuery)
  3. 微型计算机字长是不是字节的倍数,2014台湾省WORD全国计算机等级考试二级VB考试技巧重点...
  4. Leetcode 116. 填充每个节点的下一个右侧节点指针 解题思路及C++实现
  5. 手把手教你webpack3(3)入口(多入口)entry
  6. 联通研究院处长王志军:Hadoop在电信业大数据的应用
  7. sphinx配置 + php
  8. Linux实战案例(2)实例讲解使用软连接的场景和过程
  9. springboot 定时器
  10. 低压电力采集平台DW710C与PC沟通
  11. windows下IDEA全面红色,但是能编译,不能智能提示
  12. 【论文写作】在线考试系统的设计原理如何写
  13. Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、...
  14. pokemon go 和 虚拟gps
  15. 5、海康威视摄像头配置和初步测试
  16. Photoshop快速抠图:使用蒙版工具
  17. html5 paint,html5实现仿windows画图工具的画图工具jspaint
  18. ECCV 2022《Tip-Adapter: Training-free Adaption of CLIP for Few-shot Classification》
  19. DEV、SIT、UAT、PET、SIM、PRD、PROD缩写介绍
  20. sql查询之联合查询

热门文章

  1. ​北漂阿姨白天当保洁晚上做画家
  2. android one指纹解锁,三款小米新机正秘密研发:含Android One型号、均搭载屏幕指纹...
  3. [Java中将数据转JSON]
  4. JavaScript的函数调用
  5. Sketchup 外壳设计之方盒
  6. 解决H5项目微信浏览器安卓系统无法自动播放背景音乐的问题
  7. 【读书2】【2014】基于MATLAB的雷达信号处理基础(第二版)——雷达截面的复合模型(2)
  8. Android Studio 添加下划线
  9. linux rename 批量修改文件名
  10. PIC单片机与PIC单片机C语言编程简介