详解C/C++代码的预处理、编译、汇编、链接全过程

您所在的位置:网站首页 apache24配置文件详解 详解C/C++代码的预处理、编译、汇编、链接全过程

详解C/C++代码的预处理、编译、汇编、链接全过程

2023-04-04 19:15| 来源: 网络整理| 查看: 265

1. C/C++运行的四个步骤

编写完成一个C/C++程序后,想要运行起来,必须要经过四个步骤:预处理、编译、汇编和链接。每个步骤都会生成对应的文件,如下图所示(注意后缀名):

C/C++代码编译全过程

第3节将通过一个简易C++工程演示图中的全过程,并解释细节。

2.名词解释

为了后面过程的介绍更方便,这里对C++编译过程中涉及的一些常用名词进行解释。

2.1 GCC、GNU、gcc与g++GNU:一个操作系统,具体内容不重要,感兴趣可以参考:GCC:GNU Compiler Collection(GNU编译器集合)的缩写,可以理解为一组GNU操作系统中的编译器集合,可以用于编译C、C++、Java、Go、Fortan、Pascal、Objective-C等语言。gcc:GCC(编译器集合)中的GNU C Compiler(C 编译器)g++:GCC(编译器集合)中的GNU C++ Compiler(C++ 编译器)

简单来说,gcc调用了GCC中的C Compiler,而g++调用了GCC中的C++ Compiler。 - 对于 *.c 和 *.cpp 文件,gcc分别当作 c 和 cpp文件编译,而g++则统一当作cpp文件编译。

2.2 代码编译命令

gcc/g++常用指令选项:

gcc/g++常用指令选项2.3 GDB(gdb)

GDB(gdb)全称“GNU symbolic debugger”,是 Linux 下常用的程序调试器。 为了能够使用 gdb 调试,需要在代码编译的时候加上-g,如

g++ -g -o test test.cpp

本文中只演示从源代码生成可执行二进制文件的过程,暂不涉及调试过程。调试的配置会在另一篇文章中专门介绍。

3. C++编译过程详解

主要参考:

本节内容用下面的简单C++工程做演示。示例的文件结构如下:

|—— include |—— func.h |—— src |—— func.cpp |—— main.cpp

其中,main.cpp是主要代码,include/func.h是自定义函数的头文件,src/func.cpp是函数的具体实现

各个文件的内容如下:

// main.cpp #include #include "func.h" using namespace std; int main(){ int a = 1; int b = 2; cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3