zoukankan      html  css  js  c++  java
  • Ubuntu下VSCode调试环境搭建指南-C语言篇

    前言

      windows下有很多免费的开发C语言的IDE,比如微软自家的Visual Studio社区版,开源的code::blocks(自带mingw)等等,没必要再单独下载mingw折腾调试环境搭建,使用现有方案简单快捷得多,还不容易出错。而在linux系统下,相关的IDE就少了很多,前面提到的code::blocks是其中之一,但是它的编辑器使用起来却不太方便,因此还是选择使用VSCode来搭建调试环境。

    1. 安装官方C/C++扩展

      当使用VSCode打开一个C文件时,编辑器会自动提示安装相应的扩展,当然也可以手动搜索。在主界面按下Ctrl+Shift+X,在搜索栏中输入"c",出来的第一个即为需要安装的插件。

    2. 修改调试模板文件

      想要调试源代码文件,我们需要创建或者生成tasks.json和launch.json文件,关于如何自动生成这两个文件,可以参考callback接口(https://www.cnblogs.com/maxiaowei0216/p/12518468.html)中关于调试部分的内容。tasks.json文件帮助我们自动在终端中输入gcc指令,编译输出可运行文件的,而launch.json文件则是启动gdb程序进行调试的。

      对于只有一个c源文件的工程,使用默认的模板文件即可进行调试和运行。但是大部分的工程显然不可能只有一个源文件,这就需要对tasks.json文件进行修改。

      以一个简单的工程为例,其目录结构如下图所示:

      其中,hello.c中包含了main函数,在其内部引用了habc.h中声明的函数,此函数在habc.c中进行定义。那么,由于hello.c中有对habc.c的依赖,需要编译这两个源文件。所以在tasks.json中将habc.c加入到需要编译的文件列表中,其修改后的内容如下:

     1 {
     2     // See https://go.microsoft.com/fwlink/?LinkId=733558 
     3     // for the documentation about the tasks.json format
     4     "version": "2.0.0",
     5     "tasks": [
     6         {
     7             "type": "shell",
     8             "label": "gcc build active file",
     9             "command": "/usr/bin/gcc",
    10             "args": [
    11                 "-g",
    12                 "${file}",  // -o参数前填入需要编译的文件
    13                 "${fileDirname}/habc.c", //编译habc.c文件
    14                 "-o",
    15                 "${fileDirname}/${fileBasenameNoExtension}"
    16             ],
    17             "options": {
    18                 "cwd": "/usr/bin"
    19             },
    20             "problemMatcher": [
    21                 "$gcc"
    22             ],
    23             "group": "build"
    24         }
    25     ]
    26 }

    3. 编译及调试

      按下Ctrl+Shift+B 即会根据tasks.json中的定义进行编译,如果没有出错,随后即可按下F5进入调试界面。

    4. 进阶

      如果项目很大,有很多的源文件,显然不可能在tasks.json中为每个源文件添加一行代码,不仅麻烦还很容易出错。这时候就可以使用make工具,根据项目中的makelist来有选择的进行编译。因此,只需要修改tasks.json,将"command"变量改成make的路径,"args"中加上其对应的参数即可。由于本人对make还不太熟悉,在此就不进行演示了,仅提供一种思路。

  • 相关阅读:
    vue项目中npm安装sass,less,stylus
    jQueryniceScroll滚动条错位问题
    基于github发布 个人网站/博客
    【转载】预处器的对比——Sass、LESS和Stylus
    元素,布局方式,BFC和清除浮动
    使用git向github中添加项目并更新(备忘录)
    nginx 之 grok 过滤
    gitlab 同步小脚本
    svn同步小脚本
    使用pip命令自动生成项目安装依赖清单
  • 原文地址:https://www.cnblogs.com/maxiaowei0216/p/12616087.html
Copyright © 2011-2022 走看看