准备工具

MinGW

下载地址:
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/

文件清单

  • x86_64-posix-sjlj
  • x86_64-posix-seh
  • x86_64-win32-sjlj
  • x86_64-win32-seh
  • i686-posix-sjlj
  • i686-posix-dwarf
  • i686-win32-sjlj
  • i686-win32-dwarf

释义1:

  • DWARF:一种带调试信息(DWARF-2(DW2)EH)的包, 所以比一般的包尺寸大,仅支持32位系统
  • SJLJ:跨平台,支持32,64位系统,缺点是:运行速度稍慢,GCC不支持
  • SEH: 调用系统机制处理异常,支持32,64位系统,缺点是:GCC不支持(即将支持)

释义2:

  • x86_64: 简称X64,64位操作系统
  • i686: 32位操作系统(i386的子集),差不多奔腾2(1997年5月)之后的CPU都是可以用的;

释义3:

  • posix: 启用了C++ 11 多线程特性
  • win32: 未启用 (从时间线上正在尝试也启用部分 Treading)

区别

  • DWARF DWARF- 2(DW2)EH ,这需要使用DWARF-2(或DWARF-3)调试信息。 DW-2 EH可以导致可执行文件略显膨胀,因为大的调用堆栈解开表必须包含在可执行文件中。
  • setjmp / longjmp(SJLJ)。基于SJLJ的EH比DW2 EH慢得多(在没有异常时会惩罚甚至正常执行),但是可以在没有使用GCC编译的代码或没有调用堆栈的代码上工作。
  • 结构化异常处理(SEH) (Structured Exception Handling)Windows使用自己的异常处理机制。

Visual Studio Code

下载地址:
https://code.visualstudio.com/

Visual Studio Code插件:C/C++
Visual Studio Code插件:Code Runner
Visual Studio Code插件:Chinses Language

MinGW安装C/C++编译器和调试器

打开mingw-get-setup.exe,依次点击installcontinuscontinus

选择左边的All Pcakages-MinGW-MinGW Base System,在右边找到下列三个名称
mingw32-gcc(C语言编译器)
mingw32-gcc-g++(C++编译器)
mingw32-gdb(调试器)
右键class列下面的bin这一行,选择Mark for installation(每一行都要右键选择)

选择左上角的installation-Apply Changes

选择Apply等待安装完成

点击Close

配置调试C/C++

设置环境变量,让系统能够自动找到gcc命令,此电脑右键->属性->高级系统设置->环境变量,在系统变量里面找到path->编辑->新建,输入C:\MinGW\bin,点击确定 在系统变量点击新建,变量名输入include,变量值输入C:\MinGW\include,点击确定,确定,再确定。

打开CMD控制台,输入gcc -v,如果出现下列现象即成功

在任意文件夹创建一个文件(注意此文件的路径不要有中文)test.c,输入下列代码。

#include <stdio.h>

int main(){
    int n;
    printf("This is a test file!\r\nInput a number: ");
    scanf("%d",&n);
    printf("The number is %d",n);
    return 0;
}

然后在文件所在目录下的命令行中输入下列代码。(gcc是编译命令,刚刚我们安装的,-g 参数是表示编译时带上可调试记号,不然编译好的东西只能运行不能调试,-o 是表示指定输出文件,后面紧跟输出文件的名字,这一条指令就可以将c文件编译成一个可执行的二进制文件)

gcc -g test.c -o test.exe

在CMD命令行输入下列代码,运行:

test.exe

如果是PowerShell,需要输入

.\test.exe

如下图:

用Visual Studio Code进行自动编译也是这个原理。

配置Visual Studio Code

安装插件后右键Code Runner,选择扩展设置

勾选图中两项

在资源管理器中打开刚才c文件所在的文件夹,打开test.c,点击右下角的UTF-8->通过编码保存->选择Simplified Chinese(GB 2312)(解决中文乱码),按下Ctrl+Alt+N运行

如果需要按F5调试运行,则需要在main函数里面return语句的前面加上

system("pause");

或者在return 0;这一行打断点(两种方法防止控制台一闪而过。)

最后修改:2021 年 03 月 27 日
如果觉得我的文章对你有用,请随意赞赏