当前位置: 首页 > article >正文

Vscode 配置C/C++开发环境

Vscode官网地址:https://code.visualstudio.com/

简介

针对vscode远程连接linux服务器进行c++开发的情况,一般常用的是采用c_cpp_properties.json,tasks.json和launch.json进行环境配置。

首先说明一下这三个文件的功能:
tasks.json : 编译器构建 配置文件 ;
launch.json : 调试器设置 配置文件 ;
c_cpp_properties.json : 编译器路径和智能代码提示 配置文件 ;

1. c_cpp_properties.json

c_cpp_properties.json文件在哪里生成,我们使用快捷键Ctrl+Shift+P,输入C/C++:Edit Configuration。首次打开时,会在.vscode文件夹自动创建该文件。
在这里插入图片描述
c_cpp_properties.json文件是c/c++插件对应的配置文件,允许用户更改前面设置中的部分选项,例如编译器的路径,包含路径,C ++标准(默认为C ++ 17)等,我配置的c_cpp_ properties.json文件内容如下,其中includePath字段新增了“/usr/include/**”路径,这个路径中放置了linux系统常见的头文件,包括c++相关头文件,便于实现项目开发。编译器采用的是g++,若linux系统中未安装g++,则要先进行安装

Linux下配置c_cpp_properties.json

{"configurations": [{"name": "Linux","includePath": [             //搜索头文件时的路径"${workspaceFolder}/**", //默认路径       "/usr/include/**"        //新增路径  ],"defines": [],"compilerPath": "/usr/bin/g++", //编译器路径"cStandard": "c99",             //编译时采用的c标准"cppStandard": "c++14",         //编译时采用的c++标准"intelliSenseMode": "gcc-x64"   //智能模式}],"version": 4
}

Windows下配置c_cpp_properties.json

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","${workspaceFolder}\\libs\\nnom\\inc","${workspaceFolder}\\libs\\nnom\\inc\\layers"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "D:\\soft\\Qt5.6.2\\Tools\\mingw492_32\\bin\\gcc.exe","cStandard": "c99","cppStandard": "c++14","intelliSenseMode": "windows-gcc-x86"}],"version": 4
}

配置完成之后我们可以在当前项目文件夹中新建一个简单的hello word程序进行练习,如下所示:
在这里插入图片描述

2. tasks.json

如果有多个任务需要协调,就需要通过taks.json文件来设定build环境。可以在里面配置多个任务,每个任务其实就是帮你在终端输入指令(执行类似 gcc -g main.c -o main 的命令)。需要注意的一点是,tasks.json的"label"参数值和launch.json的"preLaunchTask"参数值需要保持一致

菜单栏选择 " Terminal/Configure Tasks" ,
在这里插入图片描述

Linux下配置tasks.json

{"version": "2.0.0","tasks": [{"type": "cppbuild",                       //编译类型"label": "C/C++: g++ build active file",  //标签,用于区分不同任务"command": "/usr/bin/g++",                //编译命令"args": [                                 //参数"-g","${file}",                            //表示当前项目中的所有活动文件"-o","${fileDirname}/${fileBasenameNoExtension}"  //表示在当前项目文件夹下生成与活动文件同名但没有扩展名的可执行文件],"options": {"cwd": "${workspaceFolder}"},"problemMatcher": ["$gcc"],"group": "build","detail": "compiler: /usr/bin/g++"}]
}

tasks.json文件可以进行修改,一种常见修改如下:

"args": [                                 //参数"-g","${workspaceFolder}/*.cpp",           //表示当前项目中的cpp文件"-o","hello_word"  //生成指定文件名的可执行文件
],

Windows下配置tasks.json

在安装了MinGW的前提下

{"tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe 生成活动文件","command": "D:\\soft\\Qt5.6.2\\Tools\\mingw492_32\\bin\\gcc.exe","args": ["-std=c99","-fdiagnostics-color=always","-g","${workspaceFolder}\\libs\\keras_quantizer\\example\\auto_test\\main.c","${workspaceFolder}\\libs\\nnom\\src\\backends\\*.c","${workspaceFolder}\\libs\\nnom\\src\\core\\*.c","${workspaceFolder}\\libs\\nnom\\src\\layers\\*.c","-I","${workspaceFolder}\\libs\\nnom\\inc","-I","${workspaceFolder}\\libs\\nnom\\inc\\layers","-I","${workspaceFolder}\\libs\\nnom\\port","-o","${workspaceFolder}\\libs\\keras_quantizer\\example\\auto_test\\main.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}],"version": "2.0.0"
}

有两点要注意的:

a)相对路径问题:个人建议使用以${workspaceFolder}打头的相对路径,这样即使换到不同电脑上也不用重新配置

b)c/c++版本问题,建议加上-std=c99,不然好多地方会报错,比如for(int i =0;i<10;i++)就不支持。

3. launch.json

launch.json文件用以配置VS Code以在按F5调试程序时启动GDB调试器。若linux系统中未安装gdb,则要先进行安装。在左侧主菜单中,选择“运行和调试” ,然后点击蓝色按钮,选择“ C ++(GDB / LLDB)”,此时vscode自动打开launch.json文件。首次打开时,会在.vscode文件夹自动创建该文件
在这里插入图片描述
launch.json文件内容示例如下。

Linux下配置 launch.json

 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) 启动",   //名称随便取"type": "cppdbg",       //正在使用的调试器,使用Visual Studio Windows时必须为cppvsdbg,使用GDB或LLDB时必须为cppdbg"request": "launch",    //表示此配置是用于启动程序还是附加到已运行的实例上"program": "${workspaceFolder}/hello_word",   //要执行的可执行文件的完整路径"args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}",          //可执行程序完整路径(不包含程序名称)"environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}

Windows下配置 launch.json

{"configurations": [{"name": "C/C++: gcc.exe 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${workspaceFolder}\\libs\\keras_quantizer\\example\\auto_test\\main.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "D:\\soft\\Qt5.6.2\\Tools\\mingw492_32\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}],"preLaunchTask": "C/C++: gcc.exe 生成活动文件"}],"version": "2.0.0"
}

设置完成之后,在程序指定位置添加断点,并在“运行和调试”界面开启调试即可进行程序调试。
在这里插入图片描述
调试时在编辑器的顶部,将显示一个调试控制面板,可以进行单步、多步调试控制,同时在编辑器左侧会显示局部变量、监视的变量和程序调用堆栈等信息。
在这里插入图片描述

结束

正确配置好以上三个文件后,我们按Ctrl+F5编译工程即可。如果想调试代码,只需选择右上方的Debug C/C++ File按钮。

http://www.lryc.cn/news/2412594.html

相关文章:

  • 我用两个月时间,终于把CSDN付费资源项目玩明白了!
  • AVR单片机网址推荐 .
  • 经典智力题
  • Selenium + Webdriver 学习(六) 自动选择、检查下拉列表
  • smplayer 中文字幕乱码,进度条及拖放MKV
  • 四年背的单词 笔记目录
  • KVM 虚拟化详解
  • nrf52832 sdk15.2.0 dfu升级攻略
  • SanDisk U盘加密软件 在其他u盘使用
  • springboot笔记整理(超详细,手把手教程!)
  • 真正的RISC-V开发板——VEGA织女星开发板开箱评测
  • ROS学习笔记-安装、环境搭建、初步体验与基本包命令
  • 2020-12-21细雨算法2.0解读
  • 一款免费无限制的AI视频生成工具火了!国内无障碍访问!目前真正免费无限制,可以用来制作抖音短视频,视频效果体验不逊色于pika和runway,以及其他的免费AI在线人工智能大模型, 附教程
  • 计算机专业毕业设计题目大全——各种类型系统设计大全
  • 磁盘分区格式FAT32与NTFS
  • 网络入门基础(网络布线)
  • 2017 我的第一篇个人博客
  • 移动网络为什么“慢”? 腾讯工程师分享弱联网优化之道
  • 卷上天!上海交大博士应聘中学保健员 复旦附中回应
  • 大学操作系统课程笔记
  • 渗透利器Weevely之奇淫技巧篇
  • 大学英语四级考试大纲
  • 高仿富途牛牛-组件化(三)-界面美化
  • QQ快速登录实现原理分析之localhost.ptlogin2.qq.com 怎么会映射到 127.0.0.1问题
  • 学编程需要哪些入门标准?(非常详细)零基础入门到精通,收藏这一篇就够了
  • 互联网 Java 工程师面试题1
  • web端使用HTML5开发《捕鱼达人》小游戏教程
  • C/C++编写的人机猜拳游戏教程
  • thzvv.com forum php,为什么Naver账号不能用了?