gcc编译源文件共有4个过程,预处理、编译、汇编、链接。

预处理:

命令:gcc -E test.c -o test.i  (-o后面指定生成文件的命名)
过程:展开宏定义(#define),处理编译条件指令(#if #ifndef等),插入引用的头文件(#include),删除注释,添加行号和文件标识。
结果:生成.i文件,一般的文本编辑器都能打开

编译:

命令:gcc -S test.i -o test.s
过程:词法分析,语法分析,语义分析,生成相应的汇编代码
结果:生成.s文件,一般的文本编辑器都能打开

汇编:

命令:gcc -c test.s -o test.o
过程:将汇编语言转换成二进制文件
结果:生成.o文件,一般的文本编辑器无法打开,二进制文件都是0、1

链接:

命令:gcc test.o -o test
过程:链接动态库、静态库
结果:生成可执行文件

我们编译源文件的时候,可以分步编译,也可以使用gcc test.c -o test直接生成可执行文件。将多个源文件编译输出时,需要一起进行gcc编译,可利用Makefile文件来实现。

分步编译如下:

最后得到main可执行文件,在cmd命令窗口下输入main+回车,即可运行main可执行文件。

Makefile文件详解一(gcc命令参数详解)相关推荐

  1. oracle spool 分隔符_sqlplus--spool命令参数详解

    sqlplus--SPOOL参数详解 Spool是Oracle快速导出数据的工具,是sqlplus的指令,不是sql语法里的东西 一.Spool常用的设置 set arraysize 5000;  / ...

  2. Linux 之 编译器 gcc/g++参数详解

    2016年12月9日16:48:53 ----------------------------- 内容目录: [介绍]  gcc and g++分别是gnu的c & c++编译器 gcc/g+ ...

  3. GCC 命令行详解 -L -l

    我们用gcc编译程序时,常常会用到"-I"(大写i),"-L"(大写l),"-l"(小写l)等参数,下面做个记录: GCC 命令行详解 -L ...

  4. oracle imp 1403,Oracle中用exp/imp命令参数详解【转】

    Oracle中用exp/imp命令参数详解 [用 exp 数 据 导 出]: 1  将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 expsyste ...

  5. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解mysql命令参数详解-u 用户名-p 用户密码-h 服务器ip地址-D 连接的数据库-N 不输出列信息-B 使用tab键代替 ...

  6. linux :Tar 命令参数详解

    linux Tar 命令参数详解 tar命令 1. 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. 2. 格式 tar [主选项+辅 ...

  7. java ext.dirs_关于-Djava.ext.dirs使用及JAVA 命令参数详解System.setProperty

    大家在linux环境下使用命令行执行java程序时,经常要使用到大量外部的jar包或class文件,一般我们有哪些方式可以用呢? -classpath,命令格式:# java -classpath , ...

  8. Windows 运行chkdsk磁盘修复工具命令参数详解

    Windows 运行chkdsk磁盘修复工具命令参数详解 chkdsk是Windows系统自带的磁盘修复工具,通常在电脑非正常关机之后再开机,系统就会自动调用chkdsk工具进行磁盘扫描和修复.同时, ...

  9. Mount 命令参数详解

    Mount 命令参数详解 mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该文件夹关联起来,因此只要访问这个文件夹,就相当于访问该分区了. 目前mount已 ...

最新文章

  1. 云炬创业政策学习笔记20210116
  2. Arduino--库函数头文件
  3. 图像语义分割:U-Net网络和PSP网络
  4. linux系统命令行基础知识点
  5. [机器学习笔记] Note4--逻辑回归
  6. 跨部门不配合工作_作为管理者,如何解决跨部门成员互不配合的情况?
  7. 代码运行错误及解决方法
  8. 王秋杨的“前世”和她的“在路上”
  9. toad 连接mysql8.0_toad for mysql免费版
  10. 项目经理和产品经理之区别
  11. stephen boyd著王书宁译凸优化课后题答案
  12. Android签名验证与反调试机制的对抗技术
  13. 冒险岛 mysql 添加账号密码_Win7系统玩冒险岛079单机版输入账号密码后出现error38怎么办...
  14. 肝肠轴——看不见的Crosstalk
  15. Win10右键文件夹卡死如何处理
  16. Java中HashMap底层实现原理
  17. OpenCV中的归一化
  18. C语言自定义数组函数
  19. python根据json数据画疫情分布地图
  20. JAVAEE真实课堂系列之Struts2框架-刘志远-专题视频课程

热门文章

  1. 认识方程式、函数、坐标图形
  2. HIVE 的时间转换函数
  3. 我的网络流sap,isap,dinic三种方法的对比总结
  4. 使用 Python 快速扫描局域网中活动的 IP
  5. 物业管理系统app开发的解决方案
  6. 如何快速搭建教育平台网站
  7. PythonOcc实战——step文件导入、格式转换、动画展示
  8. 164 東皐 李浚慶
  9. 百望云入选电子凭证会计数据标准深化试点服务保障单位 打通数字化“最后一公里”
  10. 实验8:Problem H: 正方形、长方形、立方体