Windows下使用cJSON库出现undefined reference错误求助
解决VS Code中cJSON未定义引用问题
错误原因
undefined reference是链接阶段报错——你只包含了cJSON的头文件(函数声明),但链接器找不到这些函数的实现代码,必须把cJSON的实现加入编译流程。
先修正代码语法错误
你的代码里有个语法错误:
const char *json_string = "JSON STRING":
末尾的冒号:要改成分号;,否则编译第一步就会失败。
解决链接问题的两种方法
方法1:直接使用cJSON源文件
- 下载cJSON的源码文件:
cJSON.c和cJSON.h,把它们和你的代码放在同一个项目目录下 - 修改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"] } ] } - 执行编译任务即可。
方法2:使用系统安装的cJSON库
- 先通过包管理器安装cJSON开发库:
- Ubuntu/Debian:
sudo apt install libcjson-dev - CentOS/RHEL:
sudo yum install cjson-devel
- Ubuntu/Debian:
- 修改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"] } ] } - 执行编译任务即可。
内容的提问来源于stack exchange,提问作者coder
相关产品推荐
相关产品推荐

