You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下使用cJSON库出现undefined reference错误求助

解决VS Code中cJSON未定义引用问题

错误原因

undefined reference是链接阶段报错——你只包含了cJSON的头文件(函数声明),但链接器找不到这些函数的实现代码,必须把cJSON的实现加入编译流程。

先修正代码语法错误

你的代码里有个语法错误:

const char *json_string = "JSON STRING":

末尾的冒号:要改成分号;,否则编译第一步就会失败。

解决链接问题的两种方法

方法1:直接使用cJSON源文件

  1. 下载cJSON的源码文件:cJSON.c和cJSON.h,把它们和你的代码放在同一个项目目录下
  2. 修改VS Code的编译任务(tasks.json),将cJSON.c加入编译命令:
    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "gcc main.c cJSON.c -o json_parser",
                "group": {"kind": "build", "isDefault": true},
                "problemMatcher": ["$gcc"]
            }
        ]
    }
    
  3. 执行编译任务即可。

方法2:使用系统安装的cJSON库

  1. 先通过包管理器安装cJSON开发库:
    • Ubuntu/Debian:sudo apt install libcjson-dev
    • CentOS/RHEL:sudo yum install cjson-devel
  2. 修改VS Code的编译任务,编译时链接cJSON库(添加-lcjson参数):
    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "gcc main.c -o json_parser -lcjson",
                "group": {"kind": "build", "isDefault": true},
                "problemMatcher": ["$gcc"]
            }
        ]
    }
    
  3. 执行编译任务即可。

内容的提问来源于stack exchange,提问作者coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:28:20