Ubuntu+Visual Studio Code

来源:互联网 发布:孙笑川 知乎 编辑:程序博客网 时间:2024/06/14 04:21

Ubuntu+Visual Studio Code - 编译C

一、下载与安装

官方下载:https://code.visualstudio.com/
下载deb安装文件
安装命令:

sudo dpkg -i ./code_1.16.0-1504714880_amd64.deb

二、安装插件

安装以下C语插件:

  • C/C++
  • C/C++ Clang Command Adapter
  • C++ Intellisense

还可根据自己需要,安装其它插件
这里写图片描述

三、进行调试

以下采用CGIC中的HelloWorld为例

1.程序编写

新建一个文件夹,作为项目的根目录,把需要用到的cgic.c与cgic.h放到目录中。
在VS Code中打开:文件—>打开文件夹
在项目目录中添加C文件进行编写,程序代码:

#include<stdio.h>#include "cgic.h"#include <string.h>#include <stdlib.h>int cgiMain(){    cgiHeaderContentType("text/html");    fprintf(cgiOut, "<HTML><HEAD>\n");    fprintf(cgiOut, "<TITLE>My First CGI</TITLE></HEAD>\n");    fprintf(cgiOut, "<BODY><H1>Hello World</H1></BODY>\n");    fprintf(cgiOut, "</HTML>\n");    return 0;}

2.任务配置

任务配置用作程序的编译,在项目目录中添加.vscode文件夹,再在.vscode文件夹中添加tasks.json文件,文件内容与作用如下:

{    "version": "2.0.0",    "tasks": [        {            "taskName": "Compile", // 任务名称,与launch.json的preLaunchTask相对应            "command": "gcc", // 如果用MinGW,编译C用gcc,编译c++用g++            "args": [                "cgic.c",                "HelloWorld.c",                "-o", // 指定输出文件名,不加该参数则默认输出a.out                "${workspaceRoot}/${fileBasenameNoExtension}.cgi",                "-g", // 生成和调试有关的信息                "-Og",                "-Wall" // 开启额外警告            ], // 编译命令参数            "type": "shell",            "problemMatcher": {                "owner": "cpp",                "fileLocation": [                    "relative",                    "${workspaceRoot}"                ],                "pattern": {                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", // 正则表达式,用于描述在“问题”栏中显示的信息。                    "file": 1,                    "line": 2,                    "column": 3,                    "severity": 4,                    "message": 5                }            }         }    ]}

可在任务—>运行任务中调用,开始编译生成程序

3.调试配置

在./vscode文件夹中添加launch.json文件,用作调试,内容与作用如下:

{    "version": "0.2.0",    "configurations": [        {            "name": "(gdb) Launch",// 配置名称,将会在启动配置的下拉菜单中显示            "type": "cppdbg",// 配置类型,这里只能为cppdbg            "request": "launch",// 请求配置类型,可以为launch(启动)或attach(附加)            "program": "${workspaceRoot}/${fileBasenameNoExtension}.cgi",// 将要进行调试的程序的路径            "args": [],// 程序调试时传递给程序的命令行参数,一般设为空即可            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,我一般设置为true            "cwd": "${workspaceRoot}",// 调试程序时的工作目录            "environment": [],// (环境变量?)            "externalConsole": true,// 调试时是否显示控制台窗口,一般设置为true显示控制台            "MIMode": "gdb",// 指定连接的调试器,可以为gdb或lldb。            "setupCommands": [                {                    "description": "Enable pretty-printing for gdb",                    "text": "-enable-pretty-printing",                    "ignoreFailures": true                }            ],            "preLaunchTask": "Compile" // 调试会话开始前执行的任务,一般为编译程序。与tasks.json的taskName相对应        }    ]}

4.调试

在代码窗口左侧可以添加断点,点击调试—>启动调试可开始进行调试
这里写图片描述

原创粉丝点击