Visual Studio Code (vscode) 配置 C / C++ 环境[zt]
clq
浏览(488) -
2021-09-12 15:43:30 发表
编辑
关键字:
[2022-01-02 15:08:30 最后更新]
//---------------------------------------------------------------- //配置 vscode https://www.cnblogs.com/bpf-1024/p/11597000.html //cfree 5 自带的 gcc 还是不行。还是照文档的下载吧。 //不过这只是单文件的,多文件可能是要用 cmake 类型的 //---------------------------------------------------------------- 昨天突发奇想,想使用vscode配置C++环境,因为不想下载 Dev OR codeblock,然后借助了很多网上教程,用了昨天整整一下午的时间最后终于成功了(哈哈哈哈哈……)。今天跟大家分享一下~~~ 因为还只是个编程小白,参考资料有点多 ↓ ↓ ↓ 官方文档 —— 参考配置过程 CSDN原创文章 —— 参考主要配置过程 知乎达人 —— 参考环境准备 ➺➻➸ 主要流程: 1. 下载VScode 2. 安装cpptools工具 3. 下载MinGW 4. 配置环境变量 5. 使用简单的.cpp文件配置C++环境 6. 运行 ➺➻➸ 详细解读: 1. 下载VScode 下载链接:https://code.visualstudio.com/Download 安装过程:一路下一步,安装很简单,安装路径看个人 2. 安装cpptools工具 打开vscode,按照以下步骤安装 3. 下载MinGW 下载地址:https://sourceforge.net/projects/mingw-w64/files/ 下载的文件:进入网站后不要点击 "Download Lasted Version",往下滑,找到最新版的 "x86_64-posix-seh"。 安装MinGW:下载后是一个7z的压缩包,解压后移动到你想安装的位置即可。我的安装位置是:D:\2Software\mingw64 4. 配置环境变量 配置对象:MinGW,所以把你刚刚安装MinGW的路径拷贝一下 配置环境变量:在此以win10为例,到达第6步之后,前面打开的窗口都要按下确定,否则会失败。 【注】:win7需要添加路径,不要覆盖了。万一真的覆盖了,点击取消重来一遍,只要不点确定,啥都好说 ^o^ 配置好环境变量后最好重启一下 VScode ^V^ ❁❁❁ 验证一下环境变量是否配置成功 按下 win + R,输入cmd,回车键之后输入g++,再回车,如果提示以下信息[1],则环境变量配置成功。如果提示以下信息[2],则环境变量配置失败。 [1]:g++: fatal error: no input files [2]:'g++' 不是内部或外部命令,也不是可运行的程序或批处理文件。 5. 使用简单的.cpp文件配置C++环境 (1)新建空文件夹Code (2)打开VScode --> 打开文件夹 --> 选择刚刚创建的文件夹Code (3)新建test.cpp文件(以最简单的 HelloWorld.cpp 为例) 复制代码 #include #include int main() { printf("Hello World\n"); system("pause"); return 0; } 复制代码 (4)进入调试界面添加配置环境,选择 C++(GDB/LLDB),再选择 g++.exe,之后会自动生成 launch.json 配置文件 (5)编辑 launch.json 配置文件 复制代码 1 { 2 "version": "0.2.0", 3 "configurations": [ 4 { 5 "name": "g++.exe build and debug active file", 6 "type": "cppdbg", 7 "request": "launch", 8 "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", 9 "args": [], 10 "stopAtEntry": false, 11 "cwd": "${workspaceFolder}", 12 "environment": [], 13 "externalConsole": true, //修改此项,让其弹出终端 14 "MIMode": "gdb", 15 "miDebuggerPath": "D:\\2Software\\mingw64\\bin\\gdb.exe", 16 "setupCommands": [ 17 { 18 "description": "Enable pretty-printing for gdb", 19 "text": "-enable-pretty-printing", 20 "ignoreFailures": true 21 } 22 ], 23 "preLaunchTask": "task g++" //修改此项 24 } 25 ] 26 } 复制代码 (6)返回.cpp文件,按F5进行调试,会弹出找不到任务"task g++",选择 "配置任务",会自动生成 tasks.json 文件 (7)编辑 tasks.json 文件 复制代码 1 { 2 "version": "2.0.0", 3 "tasks": [ 4 { 5 "type": "shell", 6 "label": "task g++", //修改此项 7 "command": "D:\\2Software\\mingw64\\bin\\g++.exe", 8 "args": [ 9 "-g", 10 "${file}", 11 "-o", 12 "${fileDirname}\\${fileBasenameNoExtension}.exe" 13 ], 14 "options": { 15 "cwd": "D:\\2Software\\mingw64\\bin" 16 }, 17 "problemMatcher": [ 18 "$gcc" 19 ], 20 "group": "build" 21 } 22 ] 23 } 复制代码 【注】: launch.json 文件中 "preLaunchTask" 的值 必须与 tasks.json 文件中 "label"的值一致。值的设置看个人喜好,保持默认也是OK的。 6. 运行 返回 HelloWorld.cpp 文件,按F5调试,发现完全OK了!
clq
2021-09-12 23:33:58 发表
编辑
官方文档 https://code.visualstudio.com/docs/cpp/config-mingw
clq
2021-09-12 23:41:33 发表
编辑
https://www.pcyo.cn/linux/20181212/216.html MingGW64 版本区别于各版本说明 2018-12-12 Linux 阅读(9867) 评论(2) 背景 下载地址:https://sourceforge.net/projects/mingw-w64 最新版是8.1.0 文件清单 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: 未启用 (从时间线上正在尝试也启用部分 Threading) 区别 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使用自己的异常处理机制。
clq
2022-01-02 15:08:30 发表
编辑
原文档中用了很多 ${fileDirname} 的环境变量。实际使用下来,换成 ${workspaceFolder} 更方便,不然如果源码中有子目录的话编译时还要切换到主目录中。 各个环境变量的说明如下 https://www.cnblogs.com/songhaibin/p/14017141.html ---------------------------------------------------------------- VS Code Tasks.json 内置变量 支持下面的预定义变量: ${workspaceFolder} - 当前工作目录(根目录) ${workspaceFolderBasename} - 当前文件的父目录 ${file} - 当前打开的文件名(完整路径) ${relativeFile} - 当前根目录到当前打开文件的相对路径(包括文件名) ${relativeFileDirname} - 当前根目录到当前打开文件的相对路径(不包括文件名) ${fileBasename} - 当前打开的文件名(包括扩展名) ${fileBasenameNoExtension} - 当前打开的文件名(不包括扩展名) ${fileDirname} - 当前打开文件的目录 ${fileExtname} - 当前打开文件的扩展名 ${cwd} - 启动时task工作的目录 ${lineNumber} - 当前激活文件所选行 ${selectedText} - 当前激活文件中所选择的文本 ${execPath} - vscode执行文件所在的目录 ${defaultBuildTask} - 默认编译任务(build task)的名字 预定义变量示例: 假设你满足以下的条件 一个文件 /home/your-username/your-project/folder/file.ext 在你的编辑器中打开; 一个目录 /home/your-username/your-project 作为你的根目录. 下面的预定义变量则代表: ${workspaceFolder} - /home/your-username/your-project ${workspaceFolderBasename} - your-project ${file} - /home/your-username/your-project/folder/file.ext ${relativeFile} - folder/file.ext ${relativeFileDirname} - folder ${fileBasename} - file.ext ${fileBasenameNoExtension} - file ${fileDirname} - /home/your-username/your-project/folder ${fileExtname} - .ext ${lineNumber} - 光标所在行 ${selectedText} - 编辑器中所选择的文本 ${execPath} - Code.exe的位置 Tip: vscode的智能提示会在tasks.json和launch.json 提示所有支持的预定义变量.
本帖子属于以下条目()
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.