0. VS Code安装及使用技巧

下文必看!
VS Code使用系列 - 开始


1. C/C++编译器配置

上面也说了,VS Code只算是个编辑器,编译还是要靠专门的编译器的,这里我们选择最常用的GNU编译套件 - GCC(Windows版为MinGW / MinGW-w64 / TDM-GCC)。

GCC中c语言编译器是gcc,c++编译器是g++,调试器是gdb

1.1 Windows编译器(安版装)- 推荐

下载:TDM-GCC - 联想软件商店
image.png
取消检查更新(因为太慢了),点击“Create”安装。
安装完毕后需关闭所有打开的终端(有的话)确保环境变量生效。
完成。

1.2 Windows编译器(便携版) - 看不看都行

有些人看其他教程里会让你下载便携版本的编译器(就是一个压缩包),那么使用时需要先将解压得到的“…\mingw64\bin”目录加入环境变量

以MinGW-w64为例,这是官方给的下载链接MinGW-w64 - SourceForge。 下载后将其解压到某个非中文目录(推荐C盘新建一个目录)。

Win10及以上版本在设置里搜素“环境变量”,点开会弹出一个“系统属性”,然后按照这个步骤选择解压后的“…/mingw64/bin”目录。选好了依次点确定就行了。
image.png
选好了依次点确定(确保配置期间没有打开的终端)。

打开终端输入gcc,如果提示你“gcc.exe: 致命错误:没有输入文件”,说明已经成功。

1.3 WSL或Linux

反正只要保证有gdb、gcc、g++就可以,在终端中分别输入gccg++gdb,查看是否安装。如果有需要可以自己加上make。

这里以Ubuntu为例,系统自带gdb,我们只使用apt安装编译器gcc和g++。

  1. sudo apt install gcc g++

2. 安装C/C++扩展

打开一个目录,新建一个文本文件保存为“xx.c”或“xx.cpp”
image.png
打开后它会自动提示安装C/C++扩展。(最近发现它会安装一个合集,其实不写大项目的话只装下面第一个就行)
image.png
然后可以写个C或C++的HelloWorld试试。

#include <stdio.h>

int main()
{     
    printf("Hello\n");
    return 0;
}
#include <iostream>

int main()
{
    std::cout << "Hello World 哈哈\n";
    return 0;
}

3. 通过“C/C++”运行、调试

必须打开一个文件夹。

注意!(Windows上使用时)文件路径不要包含中文,否则VS code不能正常启动调试器。

3.1 调试及无断点“运行”

自己按需要打断点,想直接运行就不打断点,按F5开始调试。第一次调试时依次选“C++ (GDB/LLDB)” - “gcc/g++”,会自动生成打开launch.json(1.9以后以不会再生成)和调试面板,不用管它,切换到终端即可

编译器选择gcc的话只能调试C,选g++都可以调试。将.vscode目录删除即可重新选择

image.png

3.2 运行、调试的快捷按钮(新)

接下来的操作请确保你的C/C++扩展版本大于1.9,第一个正式的版本是1.9.7。
image.png
这时打开相应的文件后右上角就会有运行和调试按钮。
image.png
如果没有,在设置中搜索“运行和调试”,确保图中选项前面已经打勾。
image.png
点击“运行”或“调试”按钮。
image.png


下面的是为了满足Windows上特定需求,比如文件路径中含有中文、想指定输出目录,不看也行


4. 运行单文件项目

手动编译运行:切换到当前目录后
编译C gcc 源文件.c -o [输出的程序名]
编译C++ g++ 源文件.cpp -o [输出的程序名]
运行编译完的程序 ./[程序名]

4.1 直接编译运行 - 扩展:C/C++ Compile Run

其实我们学习时一般都是单文件程序,这时直接编译运行速度要比上面通过调试来运行快多了。而且Windows上直接编译运行没有中文目录或文件名的限制(但还是不建议使用)。

怎么用呢,你可以手输gcc xxx.c -o xxx ./xxx等等,也可以安装下面这个拓展。安装后按一下F6即可一键编译运行,按F8在会在外置终端中打开。
VS Code使用系列 - C/C - 图10

4.2 Windows中文版乱码问题

开始那篇文章说了,Windows中文版命令行编码为GBK,可能会有乱码问题,解决方式如下。

按照下面方法,在两个“flags”里添加 -fexec-charset=gbk,这个参数的意思是让多字节字符串常量保存为指定编码(gbk)。这样源文件编码是utf-8,也能正常的直接运行。但是这样发给别人utf-8的文件他们打开可能会乱码,需要自己手动改过来。
VS Code使用系列 - C/C - 图11

或者也可以将文件编码改为GBK,但这样调试会有乱码。具体方法请参考最开始的文章。

有些麻烦是吧,都是Windows中文版的祸。


5. 现在不太推荐的 - 扩展:Code Runner

为什么不推荐,有很多原因。

  • 默认不是终端内打开,也不会运行时保存;
  • 运行程序名没有后缀,如xyz.a.c用它运行会出错 ;
  • 不能方便地自定义编译语句(GUI形式),自己改setting还不如上面的插件,而且换个文件夹都要重写;
  • 现在官方的扩展也添加了类似按钮,更用不上了。

以下为原文:
image.png

为什么要装Code Runner:
代码写完了怎么运行,你可以用命令自己调用你安装的编译器。比如:
C的编译 g++ 源文件.c -o [输出的程序名]
C的运行 ./[程序名]
C的编译 g++ 源文件.c -o [输出的程序名]
C的运行 ./[程序名]
麻烦吗?不知道命令是啥吗?这时候就可以试试用Code Runner。它会在右上角添加一个三角形状的按钮,按了之后自动帮你输入对应命令,实现一键运行。

建议设置中打开“Run in Terminal”,否则默认只有输出,而且可能出现奇怪的问题。
另外建议将它的“Save File Before Run”也打开。又不然可能你调试时发现程序和你写的不一样,然后改了半天发现它没保存,不要问我怎么知道的。
image.png