您现在的位置是:首页 >学无止境 >C++开发环境的搭建-Windows:VSCode+mingw64+CMake网站首页学无止境
C++开发环境的搭建-Windows:VSCode+mingw64+CMake
文章目录
一、软件安装
1. 网址及下载的软件
- VSCode下载地址: https://code.visualstudio.com/
- mingw64下载地址: https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
推荐下载:x86_64-win32-seh(x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z)
在C++中有 try…throw…catch,当它执行这种结构时,它需要保存现场还原现场,而 sjlj, seh, dwarf 正是实现这类过程的三种方式:
- sjlj 全称是 SetJump LongJump,前者设还原点,后者跳到还原点。
- seh 是 Borland 公司的,微软买了其专利使用权,它利用了FS段寄存器,将还原点压入,收到异常时弹出。
相较而言,sjlj 是 C 标准库就有的东西,seh 在 2014 年前是有专利的,从性能上说 seh 比 sjlj 快。- dwarf 我是在开源平台 MinGW 见到这名称,因为专利原因 MinGW 以前并不支持 seh,也许是为了保证性能,它又提供了 dwarf 这种方式。
也可以尝试一下集成安装包:https://nuwen.net/mingw.html
- CMake下载地址:https://cmake.org/download/
- 包管理器vcpkg下载地址(可选):https://vcpkg.io/en/
注意:用cmake编译项目时可能需要指定架构 cmake … -A Win32
- 控制台(可选):https://conemu.github.io/ 或者 https://github.com/cmderdev/cmder
x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z解压后的mingw64文件夹假定在D:mingw64,需要把D:mingw64in的路径加入Path环境变量(可以是用户环境变量)。
2. VSCode中配置关于C++的最简插件:
- C/C++ Extension Pack (是打包安装,一次性把所有C++相关的插件都安装了)
- Include Autocomplete
- Better C++ Syntax
- C/C++ Snippets
- GBKtoUTF8
二、C++调试环境的编译要求
1. 在编译时要带-g参数
g++ -g ./test.cpp -o t
2. 多文件编译需要分步编译
分步编译而不是编译链接一起执行,这样能够节省编译时间。
# 第一步:先编译生成.o文件
g++ -g main.cpp -c
g++ -g add.cpp -c
g++ -g multi.cpp -c
# 第二步:链接生成可执行文件
g++ *.o -o main
# 第三步:修改main.cpp源文件,重新生成被修改文件的.o文件。
g++ -g main.cpp -c
# 第四步:再链接生成可执行文件
g++ *.o -o main
三、VSCode的调试配置如下:
1. 单文件调试设置
记得要切回源码文件标签页
捕获到断点
F5键是 运行->启动调试 的快捷键。
接下来配置命令自动化设置(注意要切换到C++的源代码文件页)
生成的tasks.json不用修改,只需记录tasks.json文件中的”label“配置,并把label选项的内容拷贝到launch.json中完成配置即可。
2. 多文件调试设置
配置基本与前边单文件调试设置类似。结合CMake我们配置如下:
CMakeLists.txt
cmake_minimum_required(VERSION 3.20)
project(test)
add_executable(main main.cpp multip.cpp add.cpp main.h)
add_definitions("-Wall -g")
或者使用快捷键Ctrl + Shift + P
如果上一步CMake:Configure出现错误,请卸载如下插件并重新安装:
然后VSCode将自动扫描本机安装的C++编译器。之后:
这里要注意:VSCode中将一个打开的目录作为项目目录,并在该目录中自动生成.vscode目录——该目录中的settings.json作为CMake插件在VSCode中的配置文件。应该将本项目的总控CMakeLists.txt放置在和.vscode/同级的目录中,否则VSCode的CMake插件将不识别项目的目录。
在.vscode/中只涉及两个配置文件(多文件调试场景):settings.json和launch.json。
其中settings.json主要用于配置CMake插件,而launch.json用于调试配置(tasks.json用于配置调试前的动作)。
launch.json文件需要修改以下内容:
{
"version": "0.2.0",
"configurations": [
"program": "${fileDirname}\build\${fileBasenameNoExtension}.exe",
"miDebuggerPath": "D:\mingw64\bin\gdb.exe"
]
}
主要是在program的配置内容中加了build这一级目录(插件的约定)。
接下来F5调试项目如下:
也可以点击状态栏的如下图标:
如果修改了源文件,则需要点击Build按钮重新编译一下。
四、VSCode的其他设置
1. 基本设置
2. VSCode向终端输出中文
在VSCode编辑的源文件为UTF-8编码的情况下,如果在VSCode的终端中需要输出中文,则需要通过CMake的配置向编译器传递参数:
# 向g++传递编译参数-fexec-charset=gbk,这里Windows的cmd及powershell控制台终端默认都是GBK编码。
add_definitions("-Wall -g -fexec-charset=gbk")
默认g++的源文件输入编码为UTF-8,输出文件也为UTF-8,如果要修改输入输出文件的编码格式,需向g++传递如下参数:
-finput-charset=utf-8 -fexec-charset=gbk