Ubuntu+Visual Studio Code - 编译C

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

还可根据自己需要,安装其它插件
Ubuntu+Visual Studio Code - 编译C_第1张图片

三、进行调试

以下采用CGIC中的HelloWorld为例

1.程序编写

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

#include
#include "cgic.h"
#include 
#include 
int cgiMain(){
    cgiHeaderContentType("text/html");
    fprintf(cgiOut, "\n");
    fprintf(cgiOut, "My First CGI\n");
    fprintf(cgiOut, "

Hello World

\n"
); fprintf(cgiOut, "\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.调试

在代码窗口左侧可以添加断点,点击调试—>启动调试可开始进行调试
Ubuntu+Visual Studio Code - 编译C_第2张图片

你可能感兴趣的:(Ubuntu+Visual Studio Code - 编译C)