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

Windows下CLion使用cJSON编译出现未定义引用错误求助

解决CLion中cJSON库的未定义引用编译错误

你遇到的是链接器错误——编译器能找到cJSON.h里的函数声明,但链接阶段找不到cJSON.c中的函数实现,本质是你只把头文件放进了项目,却没告诉CMake要编译这个源文件。下面给你两种简单可行的解决方法:

方法1:直接将cJSON.c添加到可执行目标中

打开项目根目录的CMakeLists.txt,找到add_executable指令,把cJSON.c追加到源文件列表里:

add_executable(Client main.c cJSON.c)
# 注:把Client换成你的实际可执行文件名,main.c替换成项目主源文件名,确保cJSON.c和CMakeLists.txt路径匹配

修改完成后,点击CLion顶部的「Reload CMake Project」按钮,重新编译就能解决问题。

方法2:将cJSON编译为静态库再链接

如果后续要在多个项目目标中复用cJSON,这种方式更规范:

  1. 在CMakeLists.txt中添加静态库编译规则:
add_library(cjson STATIC cJSON.c)
  1. 给你的可执行目标链接这个静态库:
add_executable(Client main.c)
target_link_libraries(Client PRIVATE cjson)

同样,重新加载CMake配置后编译即可。

额外检查项

  • 确认cJSON.c和cJSON.h确实在项目目录下,如果放在子文件夹里,需要用${CMAKE_CURRENT_SOURCE_DIR}/子文件夹名来指定文件路径,或者用include_directories添加头文件搜索路径。
  • 若使用MinGW工具链,确保没有编译选项或路径冲突,比如头文件路径是否被CMake正确识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:06:27