用vscode还是vs?
看了网上一大圈评论,vs虽然及其耗费硬盘空间且打开很慢,但是高度集成的环境很省心,但是我觉得一开始可能还是用vscode了解环境配置,把坑踩了以后更好排除问题。用vscode开发c++,你需要先学gcc, makefile, cmake, c++的编译过程,如何链接库,如何引入头文件,以及如何配置vscode中的launch.json, task.json和c_cpp_properties.json。这些都弄完可能需要好几天,可是你得踩完这些坑,再去用IDE,日后才会省心。
接下来开始配置vscode
先下载vscode,分为几个版本。默认是user版本。我安装的system版本
安装MinGW-w64
下载安装MinGW-w64
posix参考1,参考2
各种版本区别 参考
一种是下载安装包,一种是离线压缩文件
离线安装
我选择的是压缩文件,就是图里离线seh那个,具体操作为:
选择合适位置解压至路径中没有空格的文件夹(换句话说,不能是 C:/Program Files/ 下的默认位置,可以是 C:\mingw-w64)
在线安装
切记,上面threads 选择和posix 以及exception选择seh要选对。
- 添加环境变量
将 mingw64 下的 bin 文件夹添加至 path - 检查
执行命令
g++ --version
gdb --version
安装C/C++扩展
打开vscode,安装c/c++扩展即可。可以在项目下新建一个.cpp文件,自己会弹出来提示安装拓展。
配置vscode的C/C++环境
我们总共需要在 .vscode 文件夹下创建如下3个文件:
- tasks.json (生成任务。告诉 VSCode 如何生成(编译)程序,该任务将调用 g++ 编译器以基于源代码创建可执行文件)
- launch.json (调试器设置)
- c_cpp_properties.json (编译器路径和 IntelliSense 设置)
在项目下建立cpp文件helloworld.cpp,示例内容:
#include <iostream>
using namespace std;
// main() 是程序开始执行的地方
int main()
{
cout << "Hello World" << "\n";
cout << "for vscode config";
return 0;
}
1.配置 tasks.json,用于编译
菜单 > 终端 > 配置默认生成任务
下拉列表中,列出了 C++ 编译器的各种预定义构建任务。选择 C/C++: g++.exe build active file。若是 C,请选择 C/C++: gcc.exe build active file,C 无法使用 g++.exe
回到 helloworld.cpp,按 Ctrl + Shift + B 或从“ 终端”菜单中选择“ 运行生成任务”
成功项目下生成与 helloworld.cpp同名的 helloworld.exe文件
:
1.【Ctrl】+【` 】 :打开默认终端,输入.\helloworld.exe 运行
2.配置 launch.json,用于调试
按 F5 或 菜单 > 调试 > 添加配置 > 选择“ C ++(GDB / LLDB)”
将看到各种预定义调试配置的下拉列表,选择 g++.exe build and debug active file
VSCode 将会创建 launch.json 文件并打开
配置 c_cpp_properties.json,进一步配置 C/C++ 扩展
1.接下来配置编译器路径,按快捷键Ctrl+Shift+P调出命令面板,输入C/C++,选择“Edit Configurations(UI)”进入配置。这里配置两个选项: - 编译器路径:c:/mingw/bin/g++.exe
这里的路径根据大家自己安装的Mingw编译器位置和配置的环境变量位置所决定。
该路径自动填充,首先寻找MSVC compiler,这个编译器是Windows的Visual Studio,如果安装了Visual Studio,则可以选择这个。其次寻找g++ on Windows Subsystem for Linux (WSL),最后寻找g++ on Mingw-w64
如果安装了 Visual Studio 或 WSL,插件可能会自己定位到vs的编译器路径,则可能需要更改 compilerPath
2.IntelliSense 模式:gcc-x64
以上三项操作完生成了对应的文件如下图:
参考:
https://zhuanlan.zhihu.com/p/105135431
https://zhuanlan.zhihu.com/p/87864677