linux下用gcc如何生成预处理、汇编等文件

作为c语言新手,首先要熟悉c语言的编译过程。在linux系统上可以借助于gcc编译器提供的参数清晰的看到这个过程。

操作方法

  • 01

    1、c语言程序生成过程 C语言程序的生成过程可以简单的分为:编辑、预处理、编译、汇编、链接五个阶断。 下面所有的操作以hello world程序为例,源码文件命名为t.c,源码内容如下: #include <stdio.h> int main() { printf("hello world\n"); return 0; }

  • 02

    2、预处理阶断 预处理阶断是对c源码中的预处理代码进行处理。 gcc -E -o t.i t.c

  • 03

    3、编译阶断 编译阶断是将c源码处理为汇编代码。 gcc -S -o t.s t.i 或者 gcc -S -o t.s t.c

  • 04

    4、汇编阶断 汇编阶断是将汇编代码处理为二进制代码。 gcc -c -o t.o t.s 或者 gcc -c -o t.o t.c

  • 05

    5、链接阶断 链接阶断将二进制代码打包成一个操作系统可以识别的可执行文件格式,linux是elf格式,windows上是pe格式。 gcc -o t t.o 或者 gcc -o t t.c

  • 06

    6、运行阶断 运行阶断,有操作系统的可执行文件加载器负责加载并执行程序。 ./t

(0)

相关推荐

  • 浅析linux下的回收站以及U盘中的.Trash文件夹

    我们知道windows的回收站 默认分布在每一个分区的RECYCLER文件夹内,那么linux的回收站呢? 经过我在ubuntu上测试发现linux下的回收站在每一个当前用户目录./local/sha ...

  • Linux下如何使cp命令不提示覆盖文件

    在Linux下,如果希望将文件file拷贝到目录dir下,可以执行:cp file dir 但如果dir下已经存在一个名为file的文件的时候,系统总是会提示是否覆盖file. 这是一个很好的功能,它 ...

  • linux下使用find命令根据系统时间查找文件用法

    这些时间戳包括 复制代码 代码如下: mtime 文件内容上次修改时间 atime 文件被读取或访问的时间 ctime 文件状态变化时间 mtime 和 atime 的含义都是很容易理解的,而 cti ...

  • Linux下清空与删除指定大小的大文件命令

    查找大文件 代码如下 find /dir -size +100M -exec ls -lh {} \; 如果想直接删除大于50M的文件,使用命令 代码如下 find /var/mail/ -size ...

  • Linux下编译C文件的过程

    Linux下编译C文件的过程

  • LINUX下ARP欺骗攻击说明与防范

    一、关于ARP欺骗的说明 近期来,很多网吧遭遇一类病毒,导致网吧频繁断线,具体的原因,是因为某些外挂和应用程序携带了一种能进行ARP欺骗的病毒。ARP欺骗其实并不是新鲜的事情,很多老的网吧工具工具,譬 ...

  • linux下怎么样重命名文件?linux下修改文件名称

    linux系统里面没有单独用来修改文件名称的命令 所以我们如果想要对文件夹重新改一个名称的花比较麻烦: 但是linux下有mv命令:也就是移动文件的命令 下面我们要介绍一下怎么样在linux下修改文件 ...

  • 在windows和linux之间用SecureCRT来上传和下载文件

    文件传输协议: 文件传输是数据交换的主要形式。在进行文件传输时,为使文件能被正确识别和传送,我们需要在两台计算机之间建立统一的传输协议。这个协议包括了文件的识别、传送的起止时间、错误的判断与纠正等内容 ...

  • Linux系统下动态库的生成

    什么是动态库? 动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种 ...