源程序(源代码)是指按照一定的程序设计语言规范编写的未经过编译的文本文件,是具有可读性的计算机语言指令。可以比作自己手写的程序代码。

可执行程序(Executable Program,EXE file)是可以在操作系统存储空间中浮动定位的二进制可执行程序。一般软件安装后会生成可执行文件,可以直接加载到内存中,并又操作系统加载并执行。

以 C 语言为例,自己编写的源代码文件扩展名为 c,这个 c 文件就是源文件。从源文件到可执行文件一般需要经过几个步骤:预处理->编译->汇编->链接这四个过程。

  • 预处理:预处理相当于根据预处理命令将源代码转换为新的 c 程序,不过通常以 i 为扩展名。
  • 编译:将得到的 i 文件翻译成汇编代码,通常以 s 为扩展名。
  • 汇编:将汇编文件翻译为机器指令,并打包成可重定位目标程序的 o 文件。
  • 链接:将引用的其它 o 文件加到汇编后的 o 文件中,处理后得到最终的可执行文件。

这里首先在 linux 操作系统中编写源代码,并命名为 hello.c,内容如下:

#include <stdio.h>int main()
{printf("Hello world!\n");return 0;
}

一个很简单的源代码,但是这样的源代码如果不是在集成开发环境(Integrated Development Environment,IDE)中是不能够直接点击执行的,需要经过一系列的操作,具体为:

# 预处理
gcc -E hello.c -o hello.i
# 编译
gcc -S hello.i -o hello.s
# 汇编
gcc -c hello.s -o hello.o
# 链接
gcc hello.o -o hello

经过以下操作后,就能够发现在 hello.c 文件同级目录中出现了文件 hello.i,hello.s,hello.o,hello。可知文件 hello 即为可执行程序,我们在终端中输入下方的指令,就能够看到最后的输出结果。

./hello

C语言源程序怎么到可执行程序相关推荐

  1. c语言源程序自动评判系统,源程序的自动评判系统.PDF

    源程序的自动评判系统 · 6 · ComputerEraNo.4 2010 C五口吉I====I源程序的自动评判系统 余梓唐 (义乌工商学院计算机系,浙江 义乌 322000) 摘 要:自动评判系统为 ...

  2. c语言源程序自动评判系统,C语言源程序的自动评判系统.pdf

    C语言源程序的自动评判系统.pdf · 6 · ComputerEraNo.4 2010 C五口吉I====I源程序的自动评判系统 余梓唐 (义乌工商学院计算机系,浙江 义乌 322000) 摘 要: ...

  3. C语言源程序作业完成系统,C语言源程序的自动评判系统

    C语言源程序的自动评判系统 · 6 · Co mpu e a N o 4 01 tr Er . 2 0 C五吉程序的自动评判系统 =源口I== I 余梓唐 (义乌工商学院计算机系,浙江义乌 32 0) ...

  4. 谈谈c语言程序如何变成可执行文件,C语言从代码变成可执行程序的步骤

    C语言从代码变成可执行程序的步骤: 预处理 -----> 编译 -----> 汇编 -----> 链接 ⒈预处理:去掉注释,加载头文件,代替宏定义,条件编译 需要文件:.c文件 生成 ...

  5. 6.标准C语言程序的文件名的后缀是,c语言源程序文件名的后缀是什么

    c语言源程序文件名的后缀是".c".c语言源程序经过C编译程序编译生成后缀为".obj"的二进制文件(目标文件),然后由称为"连接程序"(L ...

  6. 标准C 语言程序的源文件名的默认后缀,c语言源程序文件名的后缀是什么

    c语言源程序文件名的后缀是".c".c语言源程序经过C编译程序编译生成后缀为".obj"的二进制文件(目标文件),然后由称为"连接程序"(L ...

  7. 编写一个程序,实现将c语言源程序中的注释全部删除

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p257 习题8 6.编写一个程序,实现将c语言源程序中的注释全部删除 #include<stdl ...

  8. 图形旋转的C语言源程序

    图形旋转的C语言源程序 /*****************************************************************/ /* CONVOLVE.C - Turb ...

  9. 串口调试助手c语言程序,串口调试助手C语言源程序

    串口调试助手C语言源程序 串口调试助手源程序 及编程详细过程 作者:龚建伟 2001.6.20 可以任意转载,但必须注明作者和说明来自http://doc.xuehai.net,不得作为商用 目次: ...

最新文章

  1. 单网段DHCP服务器的架设
  2. 商店购物java程序_java操纵数据库-商店购物管理系统
  3. 无源码动态调试APK
  4. ffmpeg编译gb28181_国标GB28181协议视频推流平台EasyGBD在Linux下编译报“UINT64_C在此作用领域中尚未声明”错误...
  5. 位换记号、排列测试与状态图:杂耍中的数学
  6. 心路分享 | 2022暑期算法实习复盘
  7. [翻译]现代java开发指南 第一部分
  8. java树广度优先_如何在功能上生成树广度优先 . (使用Haskell)
  9. c语言中除法运算和模运算,C语言除法算法和取模运算的实现(多种算法,多种思路)...
  10. 微信公众号开发框架 For Java —— wechatapi
  11. 服务器 虚拟软驱,virtual floppy(虚拟软驱)命令行版本
  12. ANSYS 有限元分析 加载/求解/输出
  13. Invalid bound statement (not found): 各种原因
  14. Qt 5.12--color
  15. jQuery插件的使用
  16. LDPC译码原理(公式推导)及其matlab代码实现(超详细)
  17. 植物大战僵尸超全资源合集
  18. Java中判断两个日期是否在同一个月
  19. 【NLP】关键词共现/属性共现矩阵
  20. matlab 一元方程程序,用牛顿方法解一元非线性方程的根(Matlab实现)

热门文章

  1. linux多串口改波特率,如何在S3C2440上linux操作系统下将串口的波特率提高以致921600...
  2. NYOJ 451 光棍节的快乐(错排公式+排列组合)
  3. 双绞线的分类—按电气特性分
  4. VHDL——七段译码显示器
  5. 【汇编】各个寄存器作用详解
  6. Java将中国标准时间字符串转换为Date格式
  7. 孩子:爸爸妈妈你们离婚吧
  8. 【彻底关闭Windows自动更新】
  9. Windows无法停用设备,原因是某个程序正在使用它
  10. ebpf之bcc程序入门