C++的编译原理(Windows系统内)
C++程序从源文件到可执行程序大致要经历三个步骤:
源文件(cpp)->目标程序(obj)->可执行程序(exe)
C++程序从源文件到可执行程序大致要经历三个步骤:
源文件(cpp)->目标程序(obj)->可执行程序(exe)
我们在VS2015里面新建的后缀名为cpp文件就是我们常说的源文件,当创建了一个或多个源文件,编译后没有代码错误,源文件将会编译成为一个或多个目标程序,后缀名为obj。在这个过程中C++语言首先转换成汇编语言,汇编语言进一步转换成机器语言(即0和1组成二进制数)。之后要用到系统提供的“连接程序”(linker)将一个程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,最终形成一个可执行的二进制文件(exe)。
我们以之前的HelloWorld为例。在新建的Test工程里面,创建一个新的HelloWorld.cpp源文件,键入之前例子中的代码。点击编译,没有错误后,从文件管理器进入如下目录:C:/user/document/vs2015/projects/Test
在Test文件夹里面还有一个Test文件夹(存放Test文件夹和Debug文件夹)和Debug文件夹(Test.exe),在第二个Test的文件夹里有HelloWorld.cpp文件和Debug文件夹(存放HelloWorld.obj);
C++编译有一个重要的特性,那就是支持分离式编译,该机制允许将程序分割为若干个文件,每个文件可以被独立编译。正如之前所说,多个cpp文件都有自己的obj程序,这就是分离式编译的结果。