<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <blockquote>
讯享网
本文将以 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++ 程序的生成过程。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/169845.html