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

程序编译生成的文件

目录

.i 文件

.s 文件

.o文件

总结



在 C++ 编程中,.i、.s和 .o 文件是编译过程中生成的不同阶段的文件,它们代表不同的含义:

.i 文件

全称 :预处理后的文件(Intermediate File)。
含义:.i文件是源代码文件(如 .cpp 文件)经过预处理阶段生成的文件。预处理阶段主要处理源代码中的预处理指令,如 #include、#define等。.i 文件包含了经过预处理后的代码,即所有头文件被展开,宏被替换,条件编译指令被处理等。
作用:.i文件主要用于调试和查看预处理后的代码,可以帮助开发者理解预处理阶段的操作结果。
生成方式:

g++ -E main.cpp -o main.i

这条命令会读取 main.cpp 文件,进行预处理操作,并将结果输出到 main.i 文件中。

详细说明

  • g++:调用 G++ 编译器。
  • -E:仅进行预处理。
  • main.cpp:你的源文件。
  • -o main.i:指定输出文件的名称为 main.i。

.s 文件

全称 :汇编文件(Assembly File)。
含义 :.s文件是源代码文件经过编译阶段生成的汇编代码文件。编译阶段将预处理后的代码(.i 文件)转换为汇编代码,汇编代码是低级的、与体系结构相关的代码,可以直接被汇编器转换为机器码
作用:.s 文件主要用于查看编译器生成的汇编代码,可以帮助开发者理解编译器如何将高级语言代码转换为低级的汇编代码,以及优化编译器生成的代码等。
生成方式:使用 g++或 gcc编译器时,可以通过添加 -S选项来生成汇编文件。例如:

g++ -S main.cpp

这会生成 main.s文件。

.o文件

全称 :目标文件(Object File)/可重定向目标文件
含义 :.o文件是源代码文件经过编译和汇编阶段生成的目标文件。目标文件包含了机器码、数据、符号表等信息,是二进制格式的文件,可以直接被链接器使用。目标文件是独立的,不依赖于其他文件,但需要通过链接器将其与其他目标文件和库文件链接在一起,生成最终的可执行文件
作用 :.o文件是编译过程中的中间产物,主要用于链接阶段。通过将多个目标文件链接在一起,可以生成最终的可执行文件。目标文件还包含了符号信息,可以用于调试和动态链接等。
生成方式 :使用 g++或 gcc 编译器时,可以通过添加 -c选项来生成目标文件。例如:

g++ -c main.cpp

这会生成 main.o 文件。

之后就可以在Linux环境下编译cpp文件

g++ 文件名.cc -o 想要形成的文件名

总结

  1. .i文件是预处理后的文件,主要用于查看预处理阶段的结果。
  2. .s 文件是汇编文件,包含汇编代码,用于查看编译器生成的汇编代码。
  3. .o 文件是目标文件,包含机器码和其他信息,用于链接阶段生成可执行文件。

这些文件在编译和链接过程中起着重要的作用,可以帮助开发者理解和调试代码。

相关文章:

  • 面试常见概念区分:并发与并行、同步与异步、阻塞与非阻塞、线程同步与互斥
  • 【MySQL】基本操作 —— DML 与约束
  • HashMap ,HashTable , ConcurrentHashMap 面试
  • C++ primer plus 内存模型和命名空间下
  • OSC32IN与OSC32OUT对于无源晶振而言有区别吗?
  • 数字滤波器的设计实现及应用(论文+仿真)
  • 在教育领域的大模型知识引擎 × DeepSeek应用
  • 显示模组bonding缺划专案
  • RabbitMQ入门:从安装到高级消息模式
  • SWPU 2022 新生赛
  • Fisher准则例题
  • 【大语言模型】【个人知识库正式内容】提示工程:如何设计模型的提示语
  • Linux操作系统下Git的使用详细步骤
  • 什么是mysql索引回表?
  • jmeter-sample
  • 论文阅读笔记——LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
  • 自定义MDCAdapter,进行线程池级别的日志ID传递
  • 安装 Powerlevel10k 及 Oh My Zsh 的使用
  • opencascade 源码学习几何变换 BRepBuilderAPI-BRepBuilderAPI_Transform
  • 【GB28181】RTSP服务器传输AAC音频
  • 秦洪看盘|小市值股领涨,A股交易情绪复苏
  • 多少Moreless:向世界展示现代中式家具的生活美学
  • 俄外交部:俄乌伊斯坦布尔谈判改在当地时间15日下午举行
  • 证券日报:降准今日正式落地,年内或还有降准空间
  • 文化润疆|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • 中国-拉共体论坛第四届部长级会议北京宣言