文章目录
- 目的
- 编译工具链
- 基础开发与调试
- 基于CMake开发与调试
- 关于settings.json
- 总结
目的
在Windows上进行C/C++开发目前最最常用的IDE就是微软的 Visual Studio ,只是对我来说早些年的VS实在是太卡了,留下了不好的印象。后来没怎么用过,现在下了用起来也不怎么习惯,相对来说我还是喜欢更轻量的方式进行开发。这篇文章将记录在VS Code中构建C/C++开发环境的一些内容。
VS Code中构建C/C++开发环境进行开发的方法官方是有文档进行说明的,可以参考下面链接:
https://code.visualstudio.com/docs/languages/cpp
https://code.visualstudio.com/docs/cpp/introvideos-cpp
编译工具链
Windows上进行C/C++开发需要有合适的编译工具链,流行的有MSVC(微软出品)和MinGW(GCC的一个实现)。
这里使用MSYS2(提供了命令行、包管理器等工具)来安装MinGW-w64(64位版本)。首先去MSYS2官网下载软件: https://www.msys2.org/ 。安装完成后打开MSYS2-UCRT64的命令行界面,输入下面命令下载MinGW-w64:
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
下载完成后需要添加MinGW-w64到环境变量,如果未修改过目录应该是 C:\msys64\ucrt64\bin
:
添加完成后应该就可以在命令窗口中使用了:
如果下载有问题也可以直接去MinGW-w64官网下载已经编译好的工具链:https://www.mingw-w64.org/
如果对下载的版本选择有问题可以参考文章:https://blog.csdn.net/weixin_43684214/article/details/136624735
基础开发与调试
有了工具链后,在VS Code中开发C/C++需要安装C/C++的扩展:
之后就可以进行基础的开发了,下面代码编译(Run)就可以生成可执行文件:
上图代码为:
#include <iostream>int main()
{std::cout << "Hello Naisu!" << std::endl;
}
如果右上角没有调试编译的按钮可以在VS Code的设置中调出来:
编译没问题就可以进行调试(Debug),记得先打上断点:
最基础的开发和调试就是上面这样了,另外在VS Code中可以通过一些配置文件来对整个过程进行更加细致的配置:
tasks.json
编译后会生成这个文件,该文件描述了编译过程命令,可以修改该文件调整编译行为,比如编译前后动作、要编译哪些文件、编译生成什么文件等;launch.json
该文件可以通过右上角调试按钮右边的配置按钮生成,该文件描述了调试时的行为,比如"stopAtEntry": true,
进入调试时就会停在入口处,"externalConsole": true,
调试的程序就会打开独立的窗口;c_cpp_properties.json
该文件可以按Ctrl+Shift+P
然后选择C/C++: Edit Configurations(UI或JSON)
生成。该文件影响代码编写时智能提示等功能,还有不在当前工作目录下载需要引用的头文件或库的路径等;
基于CMake开发与调试
首先需要去CMake官网下载并安装:https://cmake.org/
安装完成后可以在命令窗口使用cmake:
VS Code中需要安装相应的拓展:
使用CMake的话只要项目目录下有 CMakeLists.txt
文件,这个可以自己新建也可以按VS Code的文档来,按 Ctrl+Shift+P
选择 CMake: Quick Start
来进行配置(注意配置时项目名称不能和cmake关键词重复,比如test):
按照设置下来还会生成 CMakePresets.json
文件,该文件描述了项目使用的工具链等。如果没有该文件也可以通过选择 CMake: Select Configure Preset
来配置。
配置完成后就可以用CMake工具进行编译和调试了:
除了侧边栏工具界面,底部的工具栏中也可以进行编译调试等工作。
至此本文主要要描述的内容都已完成。
关于settings.json
前面的图中可以看到 .vscode
目录下有一个 settings.json
文件,该文件用来配置当前项目的VS Code软件的一些特定配置,这个文件在实际项目中可以配置一些非常使用的功能,比如下面方式可以配置禁止搜索和禁止显示某些文件:
{// Configure glob patterns for excluding files and folders in fulltext searches and quick open. // Inherits all glob patterns from the `files.exclude` setting."search.exclude": {"**/node_modules": true,"**/bower_components": true,"**/*.code-search": true},// Configure [glob patterns](https://aka.ms/vscode-glob-patterns) for excluding files and folders. // For example, the File Explorer decides which files and folders to show or hide based on this setting. "files.exclude": {"**/.git": true,"**/.svn": true,"**/.hg": true,"**/.DS_Store": true,"**/Thumbs.db": true},
}
settings.json
文件可以配置的项目比较多,更多内容可以参考下面链接:
https://code.visualstudio.com/docs/reference/default-settings
总结
使用VS Code构建C/C++开发环境目前来说也是比较方便的,很多轻量的使用是完全可以满足的。