文档章节

VS Code创建C项目

wuqingyi
 wuqingyi
发布于 2017/06/27 15:39
字数 799
阅读 445
收藏 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
Microsoft 开源用于 VS Code 的 Java Debugger

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

周其
2017/11/21
2.8K
6
EOS开发IDE工具Visual Studio code 和CLion的配置

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

编程狂魔
08/06
0
0
asp.net core开发环境准备

1.1 安装sdk和运行时 浏览器打开网址https://www.microsoft.com/net/download, 到.Net Core下载页面。 根据操作系统,下载对应的SDK进行安装。安装之后可以从命令行运行dotnet命令,查看是否...

zting科技
2017/01/11
0
0
visual studio code调试.net core 2.0程序

最近在试.net 2.0 Preview时,在VS2017中相对麻烦,现说也怕把生产环境搞坏,于是就想在vs code下试试。 首在安装.net core 2.0的SDK和Runtime,这里下载 https://github.com/dotnet/core/blo...

桂素伟
2017/05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

此生1.3

颜值是开胃菜,不要太在意,正餐才是重点。

colinux
今天
1
0
[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
3
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
3
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
1
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部