C++中程序的运行过程

  • Post author:
  • Post category:其他


对于一个基本的C++程序一般的运行过程如下

预处理:主要是头文件的展开,宏的展开

编译:这个阶段编译器主要做词法分析、语法分析、语义分析等,在检查无错误后后,把代码翻译成汇编语言

汇编:汇编语言转化为机器语言的过程

链接:针对一些库进行调用,如一些静态库和,然后组合到目标文件中

注意:对于静态库程序在编译链接的时候把库的代码链接到可执行文件中。

而对于共享库,链接后文件仅仅包含入口地址,而不是外部函数所在目标文件的整个机器码。程序运行前要通过

动态链接

,使外部函数机器码由操作系统从磁盘复制到内存中

常见的一些gcc命令:

选项名

作用

-o

产生目标(.i、.s、.o、可执行文件等)

-c

通知gcc取消链接步骤,即编译源码并在最后生成目标文件

-E

只运行C预编译器

-S

告诉编译器产生汇编语言文件后停止编译,产生的汇编语言文件扩展名为.s

-Wall

使gcc对源文件的代码有问题的地方发出警告

-Idir

将dir目录加入搜索头文件的目录路径

-Ldir

将dir目录加入搜索库的目录路径

-llib

链接lib库

-g

在目标文件中嵌入调试信息,以便gdb之类的调试程序调试



版权声明:本文为jingxiang2646原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。