vscode运行cjson(自用)

写C/C++,vs,code:block,devc++都用过,之前嫌麻烦就没在vscode配置c/c++环境。但看到大神们都是用的vscode,于是尝试用vscode运行个小项目:cjson

首先,cjson的项目结构很简单,如下图所示:
在这里插入图片描述

下面前提是先安装好vscode上的c/c++插件
在这里插入图片描述

首先,按住ctrl+shift+P,并选择下图 “配置UI”
在这里插入图片描述

配置好如下图所示:
在这里插入图片描述
在这里插入图片描述
不出意外的话,工作目录下有这样一个文件:在这里插入图片描述
其内容如下:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "8.1",
            "compilerPath": "D:/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

然后,选中要执行的文件,按下图操作,选择到配置任务
在这里插入图片描述
选择用自己的gcc
在这里插入图片描述
得到task.json

在这里插入图片描述

由于这里是要运行整个项目,所以具体需要修改一下:
"${file}"删掉,改成"${workspaceFolder}\\*.c",并且修改掉自带的label名字(自取,简单就行)

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "xx",			// 终极大坑,建议将label换成简单的名字。后面会讲
			"command": "D:/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe",
			"args": [
				"-g",
				"${workspaceFolder}\\*.c",	//改成这样
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "D:/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "compiler: D:/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe"
		}
	]
}

最后运行生成任务,得到exe文件
在这里插入图片描述
依旧选择这个
在这里插入图片描述
最后得到可执行文件:在这里插入图片描述
在终端这里执行即可
在这里插入图片描述

每次运行都需要先生成可执行文件,然后再通过命令行运行,而且运行的终端还是在vscode里面,这显然有些不方便,于是我们可以引入launch.json文件,方便我们运行程序。
首先我们点击下图位置,得到初始的launch.json文件。
在这里插入图片描述
并进行以下修改(左边为原图,右边为修改后的图)
在这里插入图片描述

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",   //修改成tasks.json对应生成exe的文件位置和文件名称
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,    // 外部终端显示
            "MIMode": "gdb",
            "miDebuggerPath": "D:/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin/gdb.exe",   // 记得改成我们自己的gdb(注意是gdb,不是gcc)
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "xx"     // 与tasks.json中label保持一致(终极大坑,最好保持名字简洁!!)
        }
    ]
}

说一下终极大坑:如果出现下面这种情况
在这里插入图片描述

看起来是编译生成exe的时候链接出了问题,但是直接用task.json生成可执行文件时,是成功的。所以并不是那个地方的错,经过几个小时不断试错,发现将tasks.json中的label改简单一点就行了(launch.json也要做对应修改)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cJSON是一个用于在C语言中操作JSON数据的开发库。您可以通过在Linux系统上编译和安装cJSON库来使用它。以下是使用cJSON库创建和操作JSON数据的示例代码: ```c #include <stdio.h> #include "cJSON.h" int main() { cJSON *root = cJSON_CreateObject(); // 创建根节点 cJSON *item = cJSON_CreateObject(); // 创建semantic节点 cJSON *next = cJSON_CreateObject(); // 创建slots节点 cJSON_AddItemToObject(root, "rc", cJSON_CreateNumber(0)); // 在根节点下添加rc节点 cJSON_AddItemToObject(root, "operation", cJSON_CreateString("CALL")); // 在根节点下添加operation节点 cJSON_AddItemToObject(root, "service", cJSON_CreateString("telephone")); // 在根节点下添加service节点 cJSON_AddItemToObject(root, "text", cJSON_CreateString("打电话给张三")); // 在根节点下添加text节点 cJSON_AddItemToObject(root, "semantic", item); // 在根节点下添加semantic节点 cJSON_AddItemToObject(item, "slots", next); // 在semantic节点下添加slots节点 cJSON_AddItemToObject(next, "name", cJSON_CreateString("张三")); // 在slots节点下添加name节点 printf("%s\n", cJSON_Print(root)); // 打印整个JSON字符串 return 0; } ``` 这段代码将创建一个包含您提供的样例JSON数据的JSON对象,并打印出整个JSON字符串。您可以根据您的需求修改和扩展这段代码来操作JSON数据。 请注意,您需要在编译和链接过程中将cJSON库链接到您的项目中。您可以通过克隆cJSON源码并将其添加到您的项目中来完成这一步骤。有关如何在Linux上使用cJSON库的更多信息,请参考cJSON库的文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值