我们之前写好C++代码之后,是直接在Visual Studio里借助“本地windows调试器”运行的;而如果真正开发一个软件,显然不能总是依赖VS的调试器运行。真正应用中,我们最终要得到一个“可执行文件”,一般以.exe作为扩展名,双击就可以运行程序了。
怎样转换得到可执行文件呢?之前已经提到,C++是一种编译型语言,在运行之前需要进行编译和链接。我们现在就用上节写好的Hello World代码,把这个过程具体说明一下。

这里看到的helloworld.cpp,就是我们写好的C++源代码文件。其它的文件都是VS生成的项目文件。另外还有一个x64文件夹,是之前我们在本地进行调试运行时生成的,里面有一个Debug子文件夹,保存了调试运行的相关信息和日志。如果我们右键HelloWorld项目名,然后选择“清理”,Debug里面就只剩下一些日志和空文件了。

编译完成之后,再回到之前打开的项目文件夹,找到x64下的Debug目录,点进去之后就会发现多了几个文件,除了一些调试工具外,最重要的就是一个helloworld.obj,这就是编译生成的目标代码文件。

目标文件就是计算机能够直接运行的机器码。但是仅有helloworld.cpp源代码转换的机器码还不够。因为我们用到了iostream中的cout和cin对象进行输入输出操作,这就需要把iostream中对应的目标代码也提出来,组合成一个完整的、能直接运行的机器代码。这就是所谓的“链接”(link)过程,结果就会生成一个可执行文件。

在对应的目录找到这个文件,双击运行,我们会发现跟之前在调试器中的运行结果是一样的,可以直接在窗口中显示“Hello World!”,回车就会退出。这个.exe文件可以复制到任何位置,直接双击运行程序。