Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32

什么是GCC

gcc是c/c++的编译器,通常只能在 Linux 上才能用。如果我们要在windows上使用它,那么我们需要用MinGW来构建环境。让我们在Windows上也可以用gcc编译c代码,gcc与操作系统的api交互的地方mingw都与Windows API做了兼容处理。通过mingw的gcc编译出来的c/c++程序是可以原生在Windows上执行的。

下面是两种GCC环境的安装方式,一般只需要挑选其中一种安装即可,能用命令的地方我都会用命令处理,这样也能学到更多的知识点,文中系统环境版本为 Windows11

MinGW

MinGW,是Minimalist GNU for Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行库。你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行扩展,与基本运行时相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 WindowsAPI功能。

Mingw-w64 是对原始 mingw.org 项目的改进,旨在支持 Windows 系统上的 GCC 编译器。为了提供对 64 位和新 API 的支持,它在 2007 年对其进行了分叉。从那时起,它得到了广泛的使用和分发。

  • 官方网址:
https://www.mingw-w64.org/

下载页面上提供了 MingW-W64MSYS32 下载链接

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第1张图片

下载 mingw-w64 安装包

mingw-w64 源的压缩包托管在 SourceForge

SourceForge下载地址

https://sourceforge.net/projects/mingw-w64/files/mingw-w64/

列表下拉,找到 x86_64_win32-sjljx86_64_win32-seh 点击下载

SJLJ (setjmp / longjmp): 可用于32位和64位 – 不是“零成本”:即使不抛出exception,也会造成较小的性能损失(在exception大的代码中约为15%) – 允许exception遍历例如窗口callback
SEH (零开销exception) 将可用于64位GCC 4.8。

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第2张图片

如果碰到无法下载请尝点击 Problems Downloading?尝试其他地区的镜像源

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第3张图片

安装 mingw-w64

下载完成后我们解压 x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z 文件,提取到当前位置,我们将提取后得到的 mingw64 目录移动到D盘下

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第4张图片

配置环境变量

D:\mingw64\bin 目录中的文件就是我们需要的,因此我们需要把该目录添加到环境变量中去
Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第5张图片

  • 添加环境变量

以管理员权限打开CMD后输入下列命令,追加一条系统环境变量

setx path "%PATH%;D:\mingw64\bin" /M
  • 检查gcc版本

在cmd窗口中输入gcc-v 查看版本信息,如下图所示则添加环境变量成功。
Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第6张图片

MSYS2

MSYS2是一个工具库,提供易于使用的环境,用于构建、安装和运行本机 Windows 软件。

它包括一个名为 mintty的命令行终端、bash、git 和 subversion 等版本控制系统、tar 和 awk 等工具,甚至 autotools 等构建系统,尽管其中一些核心部分基于 Cygwin,但 MSYS2 的主要重点是为本地 Windows 软件提供构建环境。MSYS2 为 GCC、mingw-w64、CPython、CMake、Meson、OpenSSL、FFmpeg、Rust、Ruby 等提供最新的原生构建环境。

为了提供简单的软件包安装和保持更新的方法,它提供了一个名为 Pacman的软件包管理系统,使用过Arch Linux 用户应该会非常熟悉。它的功能非常强大,例如对依赖关系的解析和完整系统升级,以及直接和可重复的包构建。它的资源库中包含2600 多个可以安装的预构建包。

  • 官方网址:
https://www.msys2.org/

下载 MSYS2 安装包

在官方网站中获取到下载链接后我们可以通过 powershell来进行下载安装,

  • 下载命令:
wget -O msys2-x86_64.exe  https://github.com/msys2/msys2-installer/releases/download/2022-06-03/msys2-x86_64-20220603.exe

安装 MSYS2

cmd /c msys2-x86_64.exe

默认安装路径为 C:\msys64

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第7张图片

启动 MSYS2

安装完成后,通过开始栏菜单启动 MSYS2 的控制台 MSYS2 MSYS

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第8张图片

更新包库

在打开的控制台中输入以下命令更新包库

pacman -Syu

出现 以下选项时输入 Y 并按回车继

Proceed with installation? [Y/n]

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第9张图片
出现下列提示 ,键入Y并回车后窗口关闭

 To complete this update all MSYS2 processes including this terminal will be closed. Confirm to proceed [Y/n] 

重新打开 MSYS2 MSYS 控制台并输入下列命令,进行基础包更新

pacman -Su

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第10张图片

出现下列提示, 键入Y并回车。

Proceed with installation? [Y/n]

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第11张图片

安装MinGW-w64

等待所有的包更新完毕后接着就可以安装 MinGW-w64 构建包了

pacman -S --needed base-devel mingw-w64-x86_64-toolchain

出现如下页面会让你选择安装哪些包,由于需要安装的包比较多 我这边就直接回车默认全部安装。
Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第12张图片

设置环境变量

  • 添加环境变量

以管理员权限打开CMD后输入下列命令,追加一条系统环境变量

setx path "%PATH%;C:\msys64\mingw64\bin" /M
  • 检查gcc版本

在cmd窗口中输入gcc-v 查看版本信息,如下图所示则添加环境变量成功。
Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第13张图片

功能验证

创建C语言文件

我们在当前工作目录写创建一个新的 hello.c

notepad hello.c

hello.c 编写内容如下:

# include 

int main()
{
    printf("%s\n","hello world");
    return 0;
}

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第14张图片

编译文件

输入命令编译成exe可执行文件

gcc hello.c -o hello.exe

在当前目录下会生成 hello.exe 的可执行文件,生成后输入 hello.exe 就可以执行了。

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第15张图片

调试程序

如果想调试程序,进入 gdb 的功能,使用 gdb 常用的命令就可以调试程序了,我们可以输入

gdb hello.exe

Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第16张图片

关于环境变量的检查变更

由于是系统环境变量,还是需要以管理员权限执行下列命令

rundll32.exe sysdm.cpl,EditEnvironmentVariables

双击Path 项,查看之前新增加的环境变量项是否存在,如果需要修改调整,可以在原来的设置上做修改,也可以删除后再增加,有重复的可以删除。
Windows 配置 C/C++ 编译环境指南_安装MinGW与MSYS32_第17张图片

你可能感兴趣的:(Windows,#,C/C++,c++,c语言,windows)