一个代码需要C++17的环境,但是 mingw 给我安装的是C++11,现在需要重新安装高版本的环境。我的 mingw64 是8.1版本的,没有找到安装17的办法,重新对环境进行更改,注:mingw没有卸载,也不需要手动重新安装。
一、查看现在安装的C++版本
查看当前C++版本方法:
int main()
{
if (__cplusplus == 201703L) std::cout << "C++17\n";
else if (__cplusplus == 201402L) std::cout << "C++14\n";
else if (__cplusplus == 201103L) std::cout << "C++11\n";
else if (__cplusplus == 199711L) std::cout << "C++98\n";
else std::cout << "pre-standard C++\n";
std::cin.get(); //保留命令窗口
return 0;
}
二、下载MSYS2
msys2是一款跨平台编译套件,可以很方便的帮助我们安装环境。下面是MSYS的官网:
MSYS2Software Distribution and Building Platform for Windowshttps://www.msys2.org/点击下图中箭头所指的地方即可开始下载,可能会有点慢,耐心等待即可。
安装的过程非常简单,一直下一步即可,可以更改一下安装地址,这里我安装到了D盘D:\msys64。
三、安装gcc
我本来安装的有mingw64,这里报错的话,可以先安装mingw64。打开上面安装的msys2输入下面的命令安装gcc:
pacman -S mingw-w64-x86_64-gcc
对环境进行更新:
pacman -Syu --disable-download-timeout
更新完之后,我们打开的msys2窗口会关闭,在安装目录重新打开即可。这里是我的安装目录:
D:\msys64\msys2.exe 大家对照着打开即可。打开之后,再次进行更新:
pacman -Syu --disable-download-timeout
对gcc make gdb安装:
pacman -S mingw-w64-x86_64-gcc --disable-download-timeout
pacman -S mingw-w64-x86_64-make --disable-download-timeout
pacman -S mingw-w64-x86_64-gdb --disable-download-timeout
安装完成之后,再次进行最后一次更新:
pacman -Syu --disable-download-timeout
更新完成后,可以配置环境变量,不常用的话可以不用配置,我原来配置的有C++11的环境变量,这里就不配置环境变量了,需要配置的路径有 LIB,INCLUDE,PATH。
LIB:D:\msys64\mingw64\lib
INCLUDE:D:\msys64\mingw64\bin
PATH:D:\msys64\mingw64\bin
四、在VS中配置环境
1、在 VS Code 中配置 C++17
在你配置 C++17 的环境之前,你肯定在 VS Code 中已经配置过其他版本的 C++ 环境,那么恭喜你,只需要更改几个地方就可以立刻使用 C++17,在更改之前请记得把之前的配置备份一下,然后注释掉。我们只需要更改 launch.json 文件中的几个地方,cwd 中路径改为我们刚才安装的 mingw64 的路径,miDebuggerPath 中的路径改为 gdb.exe 的路径。如果你之前没有配置过C++的环境,请先配置好C++环境,这里不做过多的介绍。大家可以参考一下我下面的配置文件,照着更改一下相对应的路径。
可以简单验证一下我们的配置是否成功,上面已经发过验证 C++ 版本的代码,可以在 VS Code 中写一个简单的 C++ 文件验证一下。可以看见,我们的代码成功运行,并且是用的 C++17 的环境。如果你写的有 task.json 文件,那么不要忘记把里面的路径也更改一下。
2、在Visual Studio 中配置 C++17
在刚才我们已经在 VS Code 中配置好了 C++17 的环境,下面开始配置 VS 的环境。在 VS 中找到下图中选项的位置,点击管理配置,会出现一个CMake 设置的页面,点击绿色的加号,选择 Mingw64-Debug,选择编辑 json,在文件中找到 MINGW64_ROOT 的属性,如果路径正确保存一下文件即可,不正确的话就把路径的位置改一下再保存。
下面验证一下是否成功,新建一个 cpp 文件,输入刚才的代码,选择刚才新建的配置,运行成功,那么恭喜你,你已经配置好了。
写到这里大概也就写完了,下班下班。