文档章节

VS Code创建C项目

wuqingyi
 wuqingyi
发布于 2017/06/27 15:39
字数 799
阅读 676
收藏 0

1、安装VS Code,现在好像默认带了C/C++插件。

2、创建项目:可以在 文件->打开文件夹 中创建项目文件夹;

3、编写程序:
-test
--main.c
--source.c
--source.h
--.vscode
----launch.json
----tasks.json

.vscode文件夹后续由VS Code自动创建;

main.c

#include <stdio.h>
#include "source.h"

int main(void)
{
    printf("add:%d\n", add(2, 5));
    printf("sub:%d\n", sub(5, 2));
    return 0;
}

source.h

extern int add(int a, int b);
extern int sub(int a, int b);

source.c

int add(int a, int b)
{
    return a + b;
}

int sub(int a, int b)
{
    return a - b;
}

4、创建Task:Task可以用来完成很多事,不仅仅是用来编译!!!

创建一个task非常的简单.可以Ctrl+Alt+p叫出来命令行 输入task


点击接着选择Others,

就可以生成一个默认的模板. tasks.json:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "echo",
    "isShellCommand": true,
    "args": ["Hello World"],
    "showOutput": "always"
}

如果程序只有一个C文件,那么,只要修改上面模板中的command和args对应的内容即可,将echo换成gcc,将Hello World换成想要添加的参数或者放空,按Ctrl + Shit + b执行任务,就能编译出程序。

如果程序有很多个执行文件,或者需要分别编译debug和release等不同版本,或者需要有不同任务分别完成不同的功能,比如我现在有main.c、source.c和source.h等文件需要编译,我还想编译出debug和release版本。这就需要tasks关键字了:

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    "suppressTaskName": true,
    "args": [
        "${workspaceRoot}/main.c",
        "${workspaceRoot}/source.c"
    ],
    "showOutput": "always",
    "tasks": [
        {
            "taskName": "debug",
            "args": [
                "-gstabs"
            ]
        },
        {
            "taskName": "release",
            "args": []
        }
    ]
}

(args中的参数"-gstabs"表示编译的时候添加调试所需要的信息,否则调试的时候会直接运行完整个程序,不会在断点处停下来)

这里需要注意的是"suppressTaskName":
         如果suppressTaskName 为 true, 命令为 command 'global args' 'task args'.
         反之suppressTaskName 为 false, 命令为 command 'global args' taskName 'task args'.
(global args和task args分别表示tasks外面的args关键字的内容和tasks中每个任务自己的args)。

Ctrl+Shit+b这个快捷键只认 taskName 为 "build" 的那个task和全局命令。如果想运行上面的task,需要按Ctrl +Alt+p叫出来命令行,输入task,选择 运行任务,再选择想运行的task。

此外,当有不同任务分别完成不同的功能。只要将全局的command和args移到各个task中,填写相应的命令和参数就可以了。

5、将task关联到launch.json

5.1 创建launch.json:在菜单 调试->启动调试,就会提示要创建launch.json,选中C++(GDB/LLDB)

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

修改program和cwd关键字,program设置要运行/调试的程序,要与task编译出来程序的名称、路径一致。

5.2 关联

添加"preLaunchTask": "build"到Launch.json中.就可以用了. 意思就是运行/调试开始之前先执行一个Task.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": true,
            "preLaunchTask": "debug",
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

 

© 著作权归作者所有

共有 人打赏支持
wuqingyi
粉丝 0
博文 39
码字总数 19055
作品 0
厦门
程序员
私信 提问
使用VS Code开发调试ASP.NET Core 1.0

原文出处:LineZero 使用VS Code开发调试ASP.NET Core 1.0,微软在今天凌晨发布了.NET Core 1.0,ASP.NET Core 1.0 与 Entity Framewok 1.0。 之前跟大家讲解过VS Code开发调试.NET Core RC2...

LineZero
2016/06/29
0
0
使用 VS Code 进行 Python 编程

Visual Studio Code,简称 VS Code,是一个开源的文本编辑器,包含用于构建和调试应用程序的工具。安装启用 Python 扩展后,VS Code 可以配置成理想的 Python 开发工作环境。本文将介绍一些有...

08%
09/08
0
0
EOS开发IDE工具Visual Studio code 和CLion的配置

每一个开发人员都需要一个良好的IDE,EOS开发也是一样,为项目开发过程构建一个良好的IDE环境是第一步。这就是为什么我们要写这个如何使用VS Code或者CLion进行EOS开发的快速教程的原因。 我...

编程狂魔
08/06
0
0
Microsoft 开源用于 VS Code 的 Java Debugger

Microsoft 开源用于 VS Code 的 Java Debugger 微软推出的免费的跨平台代码编辑器Visual Studio Code(称为VS Code) 为9月份发布的 Java Debugger 开源代码。VS Code 在推出时就支持原生的 ...

周其
2017/11/21
3K
6
使用.NET Core+Docker 开发微服务

.NET Core发布很久了,因为近几年主要使用java,所以还没使用过.NET Core,今天正好有一个c#写的demo,需要做成服务,不想再转成java来实现,考虑使用.NET CORE来尝下鲜,目标是开发一个微服务...

dotNET跨平台
09/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字: 作者:孙冬梅;以前读韩国前总统朴槿惠的著作《绝望锻炼了我》时,里面有一句话令我印象深刻,她说“在我最困难的时期,...

原创小博客
6分钟前
0
0
JAVA-四元数类

public class Quaternion { private final double x0, x1, x2, x3; // 四元数构造函数 public Quaternion(double x0, double x1, double x2, double x3) { this.x0 = ......

Pulsar-V
24分钟前
12
0
Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务

Xftp传输文件 如果已经通过Xshell登录到服务器,此时可以使用快捷键ctrl+alt+f 打开Xftp并展示Xshell当前的目录,之后直接拖拽传输文件即可。 pure-ftpd搭建ftp服务 pure-ftpd要比vsftp简单,...

野雪球
25分钟前
1
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
58分钟前
2
0
java框架学习日志-2

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部