前言
关于MinGW、MSVC、以及编译工具(make、cmake、gcc/g++):
MSVC (Microsoft Visual C++ Compiler)
简介:
- MSVC 是微软提供的 C/C++ 编译器,集成在 Visual Studio 开发环境中,专为 Windows 平台设计。
- 通过 MSVC 编译的程序,通常与 Windows 平台的库(如动态链接库DLL)进行紧密集成。
特性:
- VC14、VC15文件夹:下载 OpenCV 时,常见的 VC14(对应 Visual Studio 2015)和 VC15(对应 Visual Studio 2017)的文件夹,包含了直接可用的预编译库。用户不需要自己编译,直接使用。
- Qt 开发环境支持:当使用 Visual Studio 作为 Qt 的开发环境时,也会利用 MSVC 作为编译器。
MinGW (Minimalist GNU for Windows)
简介:
- MinGW 是一个将 GNU 开发工具(如 gcc 和 g++)移植到 Windows 平台的项目,提供了在 Windows 上使用的 GCC 编译器。
- MinGW 是 Windows 下的一套 GNU 工具集,用于生成本地 Windows 可执行文件,而无需第三方 DLL 的支持。
特性:
- 静态与动态链接:MinGW 可以设置为使用静态库或动态库。使用静态库时,生成的可执行文件较大,但不依赖外部动态链接库。
- 兼容性:相比 MSVC,MinGW 编译出的程序在不同 Windows 系统之间的兼容性更好。
编译工具与过程
gcc 和 g++:
gcc
:GNU 编译器集合的 C 编译器,用于编译 C 源代码。g++
:GNU 编译器集合的 C++ 编译器,用于编译 C++ 源代码。make 和 cmake:
make:一个自动化编译工具,通过调用编译器(如 g++),实现批量编译。在工程中,
make
依赖于Makefile
来确定如何编译多个源文件。Makefile:编译规则的集合,定义了源文件之间的编译和链接关系。
cmake:生成跨平台的 Makefile 或其他构建系统(如 Visual Studio 项目)的工具。通过
CMakeLists.txt
读取配置文件,生成适合当前环境的 Makefile 文件。CMakeLists.txt:cmake 使用的配置文件,定义了项目的源文件、依赖关系、编译选项等。
C++ 编译过程概述:
- 编写源代码文件(
*.cpp
)- 创建 CMakeLists.txt:定义编译选项和源文件列表。
- 使用 cmake:根据
CMakeLists.txt
生成Makefile
。- 运行 make:使用
Makefile
调用编译器进行批量编译。- 生成可执行文件。
流程简图:
*.cpp -> CMakeLists.txt -> cmake -> Makefile -> make -> 可执行文件
通过这样的流程可以有效管理大型项目中的多源文件编译,并且保持跨平台的灵活性。
一、下载MinGW
下载安装:MinGW-w64 - for 32 and 64 bit Windows
链接:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
寻找适合自己的版本
二、MinGW配置
1.系统变量-新建
新建系统变量
2.系统变量-Path-编辑-新建
3.检验
在cmd中输入gcc -v,回车