目录
C++程序编译执行过程
简单来说,整个过程分为四个阶段:预处理(Pre-Processing)、编译(Compilation)、汇编(Assembling)、链接(Linking)。
编译预处理:处理以 #开头的指令
编译、优化:将源码.cpp文件翻译成.s汇编代码
汇编:将汇编代码.s翻译成机器指令.o文件;
链接:汇编程序生成的目标文件,即.o文件,并不会立即执行,因为可能会出现.cpp 文件中的函数引用了另一个.cpp 文件中定义的符号或者调用了某个库文件中的函数。链接的目的就是将这些文件对应的目标文件连接成一个整体,从而生成可执行的程序.exe 文件。
常用编译器
MSVC,GCC和Clang是业界三种最主流的C/C++编译器
MSVS
MSVC(Microsoft Visual C++)由微软开发,主要用于Windows平台应用程序的开发。Visual Studio系列IDE默认集成了该编译器,可以通过下载安装Visual Studio安装包来安装。MSVC只能在Windows下用,不支持跨平台。
GCC
是一套由GNU项目开发的支持多种编程语言的编译器工具链,支持多种平台和操作系统,包括Linux、Windows、macOS等,并且是许多开源项目和操作系统的标准编译器,如Linux内核。GCC还支持多种CPU指令集架构,如:X86、ARM等。
MinGW(Minimalist GNU for Windows)是一个用于Windows平台的开发环境,它提供了GNU编译器集合(GCC)的Windows版本。
项目构建
小型项目中,我们可以直接通过编译器进行程序的编译与连接,但是,在大型的项目中很不实用,因为我们很难跟踪什么需要被编译、按照什么顺序编译以及项目中存在哪些依赖。使用自动化构建系统会使构建过程更为连续。构建系统(build system)是用来从源代码生成用户可以使用的目标(targets)的自动化工具。目标可以包括库、可执行文件、或者生成的脚本等等,常见项目构建工具:
- makefile:linux下较老的构建工具
- CMake: 不同平台的构建工具
- MSbuild :vs中的c++开发
Visual Studio构建一个简单的c++程序
Visual Studio IDE可以很方便的构建c++程序
1、新建一个控制台应用程序,创建完成后项目目录下会有如下右中的一些文件。
2、生成解决方案,这个操作会将项目源码生成可执行文件,可以看到项目目录中多了两个文件夹,其中x64包含了.exe可执行文件。
3、执行,在控制台中输出Hello World!
参考:
一文搞懂C/C++常用编译器:https://zhuanlan.zhihu.com/p/713445054