欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Windows上最轻量的vscode-C++开发环境搭建

时间:2023-04-30
本文目录

1、前言2、准备工作3、vscode的一些常用插件

3.1 C++主要插件3.2 一些辅助插件 4、单文件工程示例5、多文件工程示例

5.1 工作空间结构5.2 CMakelists.txt5.3 代码文件5.4 运行结果 6、结语 1、前言

笔者刚入行时直接使用Qt进行C++软件开发,习惯了Qt浅色风格之后,尤其是虚函数斜体显示的主题。再转到VS,无论是VS的深色还是浅色主题,都让笔者感觉到强烈的不习惯。

而且,VS的安装有时候着实让人诟病,安装vs2017之前的还好,可以下载离线包。但vs2017之后,需要先下载Visual Studio Installer再下载安装必要组件,而国内有时候甚至经常出现Visual Studio Installer下载失败的情况。vs的确功能强大,堆栈分析、内存快照,甚至并行堆栈现在都是笔者常用的功能。然而,VS实在是太过臃肿太过庞大,下载耗时不说,安装内存直接起飞。

鉴于以上三点原因,笔者一直在苦苦寻找C++最轻量的集成开发环境。hw工作两个月,vscode的深度使用,让我看到了希望。本文将详细介绍如何使用vscode搭建 最轻量 的C++开发环境。

2、准备工作

vscode功能太强大了,因为其强大的扩展性,因此功能上十分完备。它虽然是个编辑器,但得益于其丰富的插件以及活跃的插件社区,vscode除了编译器和调试器之外,其余什么都不缺。

如何下载安装vscode自不用多说,百度vscode进官网下载安装就行。但推荐在安装时,勾选将code添加进环境变量。另外还有一个问题,vscode官网下载有时候会很慢,读者可以自行百度vscode国内下载慢关键字进行解决。似乎是要修改下载链接的某部分前缀。

因此,为解决编译器和调试器,现行C++编译器,主流的就那么几种:

msvc:微软的编译器,也是vs自带的编译器。gcc:linux上最常用的编译器。clang:编译器新秀,因为采用现代化设计,因此其某些方面的表现异常优秀。

msvc自然不用多说,如何从vs中剥离出msvc笔者还没有尝试过,但既然决定搭建最轻量的C++开发环境,那就不用msvc吧。因此目光放到gcc上,幸运的是,Windows上也有gcc编译器,那就是大名鼎鼎的MinGW。

MinGW下载地址如下:MinGW-64下载地址。

如果直接下载原生的MinGW,需要从sourceForge上下载,但那个下载速度让人感动。因此下载MinGW,推荐使用MSYS2。

MSYS2是一个Windows上集成clang、gcc的类linux环境,可以通过pacman命令下载MinGW以及对应的一些常用的第三方库,使用起来十分方便。而且MSYS2国内下载很快,也可以切换国内源进行库下载。因此笔者推荐使用MSYS2下载安装MinGW。后期如果要切换到clang,MSYS2也能满足。

MSYS2下载安装好了之后,其目录结构大致如下:


目录中,mingw64.exe是启动mingw终端的exe,进入MSYS2终端之后,可以通过输入以下命令进行MinGW-gcc的安装:

pacman -S mingw-w64-x86_64-toolchain

输入上述命令之后,可以看到如下输出:

$ pacman -S mingw-w64-x86_64-toolchain:: There are 19 members in group mingw-w64-x86_64-toolchain::: Repository mingw64 1) mingw-w64-x86_64-binutils 2) mingw-w64-x86_64-crt-git 3) mingw-w64-x86_64-gcc 4) mingw-w64-x86_64-gcc-ada 5) mingw-w64-x86_64-gcc-fortran 6) mingw-w64-x86_64-gcc-libgfortran 7) mingw-w64-x86_64-gcc-libs 8) mingw-w64-x86_64-gcc-objc 9) mingw-w64-x86_64-gdb 10) mingw-w64-x86_64-gdb-multiarch 11) mingw-w64-x86_64-headers-git 12) mingw-w64-x86_64-libgccjit 13) mingw-w64-x86_64-libmangle-git 14) mingw-w64-x86_64-libwinpthread-git 15) mingw-w64-x86_64-make 16) mingw-w64-x86_64-pkgconf 17) mingw-w64-x86_64-tools-git 18) mingw-w64-x86_64-winpthreads-git 19) mingw-w64-x86_64-winstorecompat-gitEnter a selection (default=all):

输入Y之后就会进行相关工具的安装,输出大致如下:

:: Proceed with installation? [Y/n] Y(19/19) checking keys in keyring [#####################] 100%(19/19) checking package integrity [#####################] 100%(19/19) loading package files [#####################] 100%(19/19) checking for file conflicts [#####################] 100%(19/19) checking available disk space [#########################] 100%:: Processing package changes...( 1/19) reinstalling mingw-w64-x86_64-binutils [#########################] 100%( 2/19) reinstalling mingw-w64-x86_64-headers-git [#########################] 100%( 3/19) reinstalling mingw-w64-x86_64-crt-git [#########################] 100%( 4/19) reinstalling mingw-w64-x86_64-libwinpth..、 [#########################] 100%( 5/19) reinstalling mingw-w64-x86_64-gcc-libs [#########################] 100%( 6/19) reinstalling mingw-w64-x86_64-winpthrea..、 [#########################] 100%( 7/19) reinstalling mingw-w64-x86_64-gcc [#########################] 100%( 8/19) reinstalling mingw-w64-x86_64-gcc-ada [#########################] 100%( 9/19) reinstalling mingw-w64-x86_64-gcc-libgf..、 [#########################] 100%(10/19) reinstalling mingw-w64-x86_64-gcc-fortran [#########################] 100%(11/19) reinstalling mingw-w64-x86_64-gcc-objc [#########################] 100%(12/19) reinstalling mingw-w64-x86_64-gdb [#########################] 100%(13/19) reinstalling mingw-w64-x86_64-gdb-multiarch [#########################] 100%(14/19) reinstalling mingw-w64-x86_64-libgccjit [#########################] 100%(15/19) reinstalling mingw-w64-x86_64-libmangle-git [#########################] 100%(16/19) reinstalling mingw-w64-x86_64-make [#########################] 100%(17/19) reinstalling mingw-w64-x86_64-pkgconf [#########################] 100%(18/19) reinstalling mingw-w64-x86_64-tools-git [#########################] 100%(19/19) reinstalling mingw-w64-x86_64-winstorec..、 [#########################] 100%

至此,代码编辑器、编译器均已安装好,别忘记将上文中/MSYS2-path/mingw64/bin目录添加进环境变量。如果你还需要调试器等其他的工具,请接着往下看,否则可以直接跳到第三节。

MSYS2安装gdb调试器:
pacman -S mingw-w64-x86_64-gdbMSYS2安装make、cmake
pacman -S mingw-w64-x86_64-make
pacman -S mingw-w64-x86_64-cmake
安装make是必须的,但是make下载后并不是make.exe,而是mingw-make.exe。
安装cmake只是为了不用再去cmake官网下载,而cmake官网下载cmake安装文件很慢。
3、vscode的一些常用插件 3.1 C++主要插件

vscode下载安装结束之后,C++开发常用的插件如下:

C/C++:
cmake插件:

注:CMakeTools插件,建议进行如下设置:

该设置的含义为,将CMake的构建目录设置为工作空间文件夹的上一级文件夹下,以工作空间名+_Build命名该工作空间的构建文件夹。

如果只是开发C++,核心插件就是这三个。其中C/C++插件是vscode对C/C++直接支持的插件,cmake和cmake tools插件是对cmake直接支持的插件。

如果不需要使用cmake进行工程构建,也可以不用下载cmake相关插件,但这样的话,需要手写workspaceFolder/.vscode/task.json和workspaceFolder/.vscode/launch.json这两个文件进行工程构建配置。由于这两个文件写起来比较麻烦,相关教程也较少,因此笔者推荐使用cmake进行工程构建。同时,对于多文件工程,cmake提供了更好了支持。

不过,比较麻烦的是,如果使用cmake进行工程构建,需要自己写CMakelists.txt,需要了解cmake语法。不过,对于大部分C++程序而言,第三方库的使用必不可少,而现在主流的第三方库构建语言正是cmake。因此cmake是任何C++开发者绕不过去的。

鉴于此,笔者强烈推荐读者朋友们学一学cmake。

3.2 一些辅助插件

C++开发过程中,遇到一些特殊需求,比如自动生成类成员函数的定义,可以使用以下两个插件:

自动生成类成员函数的定义插件:

C/C++ Definition Autocompletion

该插件主要功能是根据头文件中的函数声明,通过按下.自动生成函数定义。
如下图所示:

还有一个自动生成所有成员函数的插件,但是忘了叫什么,下载次数比上面这个要多,但个人感觉不好用。后面想起来了再更新…

关于代码自动补全的插件,最近笔者发现了一款神奇的AI辅助插件,这里也推荐一下,看介绍是利用AI进行上下文识别,自动创建代码段候选。vscode插件商城中AI辅助写代码的插件有很多,但笔者个人觉得,可能还是以下插件要稍微好用一些:

AI 辅助插件 — Tabnine

笔者多嘴一句:AI辅助插件虽然神奇且强大,但由于其联网可能会更准确,在安全性方面,敬请读者朋友们谨慎使用。这也可能是笔者对AI外行的片面之词,因此请读者朋友们自行甄别。

另外,如果读者对当前的vscode的主题(图标主题、颜色主题等)不满足,vscode插件商城里有极其丰富的主题插件,总有一款会适合你。

4、单文件工程示例

以上C++开发环境已经搭建完毕,下文将介绍如何进行真实工程开发。

假设工作空间如下图所示:


通过编写CMakelists.txt,可以进行单文件构建。

其中,CMakelists.txt的内容如下:

cmake_minimum_required(VERSION 3.20)project(SingleFileProjectExample)add_executable(${PROJECT_NAME} main.cpp)

main.cpp的内容如下:

#include int main(){ std::cout << "Hello World." << std::endl; return 0;}

这里需要注意一点的是,CMakeTools插件在第一次打开工作空间添加CMakelists.txt文件时,不会自动触发CMakeConfiguration,当写完CMakelists.txt文件之后,用vscode重新打开工作空间,才会触发CMakeConfiguration。细节对比如下:

第一次打开空的工作空间,编辑器状态栏CMakeTools相关信息并未显示:
添加CMakelists.txt文件后,重新打开工作空间,CMakeTools插件触发CMakeConfiguration,信息如下:

选择gcc编译器之后,点击状态栏的调试按钮或者运行按钮,即可进行程序的调试或运行。如下图所示:

可以看到工程已成功运行。

5、多文件工程示例

多文件工程示例如下,只需要修改CMakelists.txt文件就行:

5.1 工作空间结构

多文件工程示例结构如下:


这是按照一般第三方库的写法进行的,头文件放在include目录下,源文件放在source文件夹下,最外层放CMakelists.txt文件。

5.2 CMakelists.txt

工程构建的CMakelists.txt文件内容如下:

source文件夹下CMakelists.txt文件内容如下:

5.3 代码文件
MyMath.h
MyMath.cpp
main.cpp
5.4 运行结果

运行结果如下:

6、结语

vscode+MinGW搭建C++开发环境不难,而且整体加起来大小也只有1G左右,相比于vs动不动5~6G的庞大来说,这一套着实是算轻量了。

这一套所有的资源已经上传,需要的朋友可以前往下载:下载地址。

另外,打字不易,能不能点个赞再走???

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。