本文将以 MSCV 为例,简要介绍 C++ 程序的生成过程。
MSVC,全称 Microsoft Visual C++,是由微软开发的用于生成 C++ 程序的工具集,包括 C++ 预处理器、编译器、链接器和其他生成工具。
预处理由预处理器(Preprocessor)完成,其目的是对源代码进行预处理,为后续编译做准备。编写一个 hello.h 头文件和一个 hello.cpp 源文件,其各自的内容如下。在 VS 的开发者命令提示符中输入指令:cl -P hello.cpp,将生成以 .i 结尾的预处理文件。预处理文件的内容仍然是可读的文本文件,打开后的内容如下,对比后可以发现,预处理过程主要完成以下内容:
- 删除注释
- 拷贝头文件
- 处理条件编译
- 展开宏定义
其中 #line 命令为 MSVC 预处理器的特性,可以忽略
编译由编译器(Compiler)完成,其目的是将预处理后的源文件翻译为可供计算机执行的二进制文件。在 VS 的开发者命令提示符中输入指令:cl -c -Tp hello.i,继续生成以 .obj 结尾的目标文件。
链接由链接器(Linker)完成,其目的是将若干个编译后产生的目标文件链接成可执行文件,可执行文件就是最终生成的可以直接运行的 C++ 程序。编写另一个具有入口函数的 main.cpp 源文件,其内容如下,按照上述步骤编译生成另一个目标文件,在 VS 的开发者命令提示符中输入指令:link main.obj hello.obj,将生成 .exe 结尾的可执行文件。
最后以一张图概括 C++ 程序的生成过程。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/goyykf/42886.html