Linux下配置VSCode进行C/C++语言的调试环境

在推出强大的Windows平台开发工具之后,微软又推出了一款轻量级的可跨平台的开发工具:VSCode。
如今它名气也非常大,基本上与sublime text,Emacs等主流开发工具并肩。
这篇文章中,笔者将亲自体验Linux下的VSCode的C/C++编程之旅。
配置总体分为以下几步:

1、下载安装VSCode
2、安装cpptools插件
3、安装编译调试环境
4、配置VSCode的调试配置文件

下载安装VSCode

VSCode官网下载

blob.png

大家根据自己系统下载对应安装包。
Redhat系下载rpm包,Debian系下载deb包。
笔者是debian,所以下载deb包。
下载好deb包,打开终端,进入相应目录,运行
dpkg -i packagename.deb        #packagename改为对应下载文件的名称
如果提示依赖关系错误,请断续运行如下命令修复:
sudo apt-get install -f
至此,VSCode已经安装完成。
blob.png

安装cpptools插件

在如上界面下按键(Ctrl+e)在输入框输入如下命令并回车

ext install cpptools

blob.png

点击安装,完成之后点击启用。由于笔者已经安装过了,所以截图有所不同。
至此,cpptools插件已经安装好了。

安装编译调试环境。

打开终端,输入如下命令:

sudo apt-get install gdb g++

等待安装完成。

blob.png

由图可见,笔者已经安装好了。

配置VSCode调试配置文件

接下来就是最后一步了,也是很关键的一步。
此处,需要更改3个文件内容。
首先,打开文件夹,此文件夹的所有文件都会被认为是C/C++文件。
第一个要修改的文件:c_cpp_properties.json
新建一个文件,保存为.cpp文件。
输入
#include 
后面记得加空格,鼠标指向这个语句,会出现一个小灯泡

blob.png

点击小灯泡,会出现
blob.png

点击Add include path to settings
找到对应linux项,修改为:
        {
            "name": "Linux",
            "includePath": ["/usr/include","/usr/include/c++/4.9.2"],
            "browse" : {
                "limitSymbolsToIncludedHeaders" : true,
                "databaseFilename" : ""
            }
        }
注意上面红色部分,这是C++头文件的位置,由于版本不同,路径可以不同,请自行找到目录验证!前面的为C头文件的位置。
保存,关闭。如不添加C++头文件的目录,include C++头文件的时会报错。
第二个要修改的文件:launch.json
回到CPP文件,在左侧选择调试
blob.png

点击设置,选择GDB linux,会出现如下:
blob.png

内容参照如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg", // 配置类型,这里只能为cppdbg
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${workspaceRoot}/${fileBasenameNoExtension}.o", // 将要进行调试的程序的路径
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${fileDirname}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
            "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "MIMode": "gdb", //使用GDB调试
            "preLaunchTask": "g++"   // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
            "setupCommands": [
                {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
                }
           ]
        }
    ]
}

保存关闭。
//更新说明:生成文件名,test.cpp生成的文件由test.cpp.o改为test.o
第三个文件:tasks.json
按键(Ctrl+shift+p)找到任务:运行生成任务

blob.png

修改如下内容:
blob.png

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "g++",                #编译器,自行选择g++或gcc
    "isShellCommand": true,
    "args": ["-g","${file}","-o","${fileBasenameNoExtension}.o"],            #编译时的参数
    "showOutput": "always"
}

保存关闭。

到此处,已经配置好了VSCode对C/C++的支持,可以尽情写代码了!

看效果图:
可设断点、变量监控、堆栈调用。

blob.png

评论

  1. yxhl
    5年前
    2019-3-10 22:53:55

    超棒

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇