头库的正确路径是#include <cjson/cJSON.h>
使用默认 Makefile 配置安装时。
另外,编译命令不正确,cJSON库cjson
全小写安装。因此,使用gcc file1.c -lcjson
它会起作用。
正如@Zainab 所说,"
文件名周围的双引号是当头文件与您正在编译的文件位于同一目录内时。小于/大于符号<>
用于指定系统上已安装的库。
列出系统上已安装的库(假设您在 *NIX 系统上,您可以运行ldconfig -p
)。当 grepping 它ldconfig -p | grep 'cJSON'
什么都没有返回时,而 grepping withcjson
确实返回结果:
libcjson_utils.so.1 (libc6,x86-64) => /usr/lib/libcjson_utils.so.1
libcjson_utils.so (libc6,x86-64) => /usr/lib/libcjson_utils.so
libcjson.so.1 (libc6,x86-64) => /usr/lib/libcjson.so.1
libcjson.so (libc6,x86-64) => /usr/lib/libcjson.so
更讽刺的是,使用cjson/cjson.h
头文件不起作用,而cjson/cJSON.h
确实起作用。