赞
踩
安装VsCode,官网下载地址:Visual Studio Code
完全卸载VScode
①首先进行简单的卸载;
②删除C:\Users下的.vscode文件夹
③删除C:\Users\AppData\Roaming下的Code文件夹
①安装MinGW编译器
官网:MinGW-w64
软件下载:WinLibs - GCC+MinGW-w64 compiler for Windows
如果下载速度较慢也可在此处下载: https://download.csdn.net/download/hfy1237/87802657
MinGW版本:
- 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
注意:
在使用32位编译器(i686)时,你所使用的第三方库也必须时32位;
在使用64位编译器(x86_64)时,你所使用的第三方库也必须时64位;
- DWARF:一种带调试信息的包, 所以比一般的包尺寸大,仅支持32位系统。dwarf 的性能要优于 sjlj。
- SJLJ:跨平台,支持32、64位系统,稳定性好。缺点是:运行速度稍慢,GCC不支持。sjlj支持32、64两种编译,需加-m32或-m64参数。
- SEH:性能较好,调用系统机制处理异常,支持32,64位系统,缺点是:GCC不支持。
- posix: 开发 Linux、Unix、Mac OS 等操作系统下的程序,启用了C++ 11 多线程特性。
- win32: 开发 Windows 程序,未启用C++ 11 多线程特性。
②将MinGW的bin文件夹添加到系统的PATH环境变量。
PATH环境变量的目的是指定命令的搜索路径,方便当前程序寻找指定的运行程序。
③打开Windows的命令行窗口,输入以下代码测试:
- gcc --version
- g++ --version
- gdb --version
如何无法执行上述三个命令请检查是否正确配置环境变量。
打开VSCode软件,安装C/C++扩展,如下图所示:
①创建一个新的文件夹用于保存项目相关文件,本文为MyProject;
②在VScode中打开此文件夹(快捷键Ctrl+K+O)
③在工作空间根目录下创建子文件夹src用于保存源代码文件;
④在src文件夹下创建新的文件main.c,并复制下面的内容到文件中;
- #include <stdio.h>
-
- int main()
- {
- /* 我的第一个 C 程序 */
- printf("Hello, World! \n");
-
- return 0;
- }
⑤点击左上角的播放按钮;
⑥选择gcc;
⑦选择“Run and Debug”,继续选择“C++(GDB/LLDB)”;
此文件主要是告知VScode如何构建(编译)源代码,用于编译设置。
打开方法:在命令面板输入tasks,选择如下如下红色矩形部分,即可打开task.json文件。
参数名 | 功能 |
---|---|
type | 编译环境类型。 |
label | 当前任务名,可自行设置。 |
args | 编译选项,包括所的编译文件、保存编译文件的目录等。 |
command | 编译器所在的绝对路径。 |
options-cwd | 编译器所在目录 |
任务构建快捷键:Ctrl + Shift + B
构建完成后可输入:.\可执行程序 运行
说明:
- 修改 "${file}" 为 "${workspaceFolder}\\*.c" 可构建当前工作区的所有文件。
- 修改 "${fileDirname}\\${fileBasenameNoExtension}.exe" 为 "${workspaceFolder}\\MyExe.exe" 可将编译输出的文件硬编码为 MyExe.exe 。
此文件主要主要是告知VScode如何调试程序,用于自定义调试。
打开方法:按照下图所示步骤可打开launch.json文件。
参数名 | 功能 |
---|---|
name | 调试任务名称 |
type | 调试环境的具体类型 node 、java 、cppdbg 等等 |
program | 被调试可执行文件的绝对路径 |
args | 程序调试时,传递给程序命令行的参数 |
stopAtEntry | 调试时,是否暂停在程序的入口处 |
cwd | 调试程序时的工作目录,一般为工作空间 |
externalConsole | 是否在控制台显示 |
MIMode | 指示MIDebugEngine将连接的控制台调试器。允许的值是 "gdb""ldb"。 |
miDebuggerPath | 到MI调试器(如gdb)的路径。当未指定时,它将首先搜索调试器的路径。 |
preLaunchTask | 代表的是在调试之前要执行的任务,必须与tasks.json的label对应。 |
request:调试模式,一共有两种模式。
launch
:和应用一起启动。attach
:在已启动的应用基础上附加调试器。
启动调试的方式:
- F5
- Run → Start Debugging
- 单击左侧调试图标 → 单击绿色调试图标
此文件用于配置编译器、头文件路径、C\C++标准(默认C\C++17)等。
打开方法:进入命令面板(Ctrl + Shift + P),输入:edit,如下:
参数名 | 功能 |
---|---|
env | 用户自定义变量 |
configuration | 定义编译器、头文件、C\C++标准 |
version | c_cpp_properties.json文件版本,不可修改。 |
参数名 | 功能 |
---|---|
compilerPath | 编译器的完整路径 |
intelliSenseMode | 指定intelliSense的模式 |
includePath | 指定包含头文件的目录 |
cStandard | 指定C语言标准的版本 |
cppStandard | 指定C++语言标准的版本 |
workspaceFolder的当前打开文件
例如:
当前被打开的文件路径:/home/your-username/your-project/folder/file.c
工作空间根目录:
/home/your-username/your-projec
预定义变量对应值如下:
- ${userHome} -
/home/your-username
- ${workspaceFolder} -
/home/your-username/your-project
- ${workspaceFolderBasename} -
your-project
- ${file} -
/home/your-username/your-project/folder/file.c
- ${fileWorkspaceFolder} -
/home/your-username/your-project
- ${relativeFile} -
folder/file.c
- ${relativeFileDirname} -
folder
- ${fileBasename} -
file.c
- ${fileBasenameNoExtension} -
file
- ${fileDirname} -
/home/your-username/your-project/folder
- ${fileExtname} -
.c
- ${lineNumber} - 光标的行号
- ${selectedText} - 在代码编辑器中选择的文本
- ${execPath} - Code.exe 的位置
- ${pathSeparator} -
/
在 macOS 或 linux 上,\
在 Windows 上
此配置方式将生成的二进制文件放入工作空间下的指定文件夹build中,你也可修改build名称。
tasks.json
- {
- "tasks": [
- {
- "type": "cppbuild",
- "label": "gcc编译并运行",
- "command": "D:\\A\\MinGW64\\bin\\gcc.exe",//此处为你的gcc.exe路径
- "args": [
- "-fdiagnostics-color=always",
- "-g",
- "${file}",
- "-o",
- "${workspaceFolder}\\build\\${fileBasenameNoExtension}.exe"
- ],
- "options": {
- "cwd": "${fileDirname}"
- },
- "problemMatcher": [
- "$gcc"
- ],
- "group": {
- "kind": "build",
- "isDefault": true
- },
- "detail": "调试器生成的任务。"
- }
- ],
- "version": "2.0.0"
- }
launch.json
- {
- "version": "0.2.0",
- "configurations": [
- {
- "name": "C/C++: gcc.exe 生成和调试活动文件",
- "type": "cppdbg",
- "request": "launch",
- "program": "${workspaceFolder}\\build\\${fileBasenameNoExtension}.exe",
- "args": [],
- "stopAtEntry": false,
- "cwd": "${fileDirname}",
- "environment": [],
- "externalConsole": true,
- "MIMode": "gdb",
- "miDebuggerPath": "D:\\A\\MinGW64\\bin\\gdb.exe", //此处为你的gdb.exe路径
- "setupCommands": [
- {
- "description": "为 gdb 启用整齐打印",
- "text": "-enable-pretty-printing",
- "ignoreFailures": true
- },
- {
- "description": "将反汇编风格设置为 Intel",
- "text": "-gdb-set disassembly-flavor intel",
- "ignoreFailures": true
- }
- ],
- "preLaunchTask": "gcc编译并运行"
- }
- ]
- }
此配置方式适用于包含第三方库的使用,主要对tasks.json文件进行修改即可。
将 tasks.json 文件中的 args 参数添加两个路径,如下图所示:
完整 tasks.json 文件内容如下:
- {
- "version": "2.0.0",
- "tasks": [
- {
- "type": "shell",
- "label": "g++.exe build active file",
- "command": "D:\\mingw64\\bin\\g++.exe", /*此处设置为你的编译器路径*/
- "args": [
- "-g",
- "${file}",
- "-L'F:\\Project\\SP++3.0\\lib'", /*注意,此行指定库的lib目录,默认没有*/
- "-I'F:\\Project\\SP++3.0\\include'", /*此处指定库的include目录,默认没有*/
- "-o",
- "${fileDirname}\\${fileBasenameNoExtension}.exe"
- ],
- "options": {
- "cwd": "D:\\mingw64\\bin" /*此处设置你编译器路径的bin目录下*/
- },
- "problemMatcher": [
- "$gcc"
- ],
- "group": {
- "kind": "build",
- "isDefault": true
- }
- }
- ]
- }
注意:快捷键F5和播放按钮使用不同的配置执行代码。
多文件编译时,在tasks.json 文件下的 "args" --> "-g" 参数后添加指定的文件,并用逗号分隔即可,实例如下:
- "-g",
- "${workspaceFolder}\\src1\\*.c",
- "${workspaceFolder}\\src2\\*.c",
- "${workspaceFolder}\\src3\\*.c",
gcc带不同参数的含义:"-g"产生调试信息,"-c"编译中间目标文件,"-I"指定链接库,"-o"生成指定命名的可执行文件。
修改 launch.json 文件中的 "externalConsole" 为 false
"externalConsole":false,
在主程序最后添加 system("pause");
system("pause");
在主程序最后添加 getchar();
getchar();
增添头文件<windows.h>并调用API函数SetConsoleOutputCP(65001)
更改VScode的编码格式为GBK,或者也可以将源代码文件用记事本打开并另存为ANSI编码格式。
修改VScode的setting.json配置文件,统一为一种编码格式即可。
Windows (中文) 默认的字符集是 Windows-936 (GBK),而 GCC 编译器默认编译的时候是按照 UTF-8 解析的,当未指定字符集时一律当作 UTF-8 进行处理,于是造成乱码。因此在GCC编译时添加以下参数即可解决。
- -fexec-charset=gbk
-
- -finput-charset=gbk
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。