CObjectJsonReader.h:4:23: 致命错误:json/json.h:没有那个文件或目录

本文详细介绍了如何从GitHub下载JSONCpp 1.6.0版本的压缩包,包括下载链接、解压步骤以及如何通过cmake、make和make install命令进行编译安装。
在将新的 `.c` 文件添加到 Makefile 中编译时出现“致命错误:types.h:没有那个文件目录”,通常是因为编译器找不到 `types.h` 头文件。以下是一些可能的解决办法: #### 1. 检查头文件路径 首先要确认 `types.h` 文件是否存在于系统中,以及它所在的路径。可以使用 `find` 命令来查找该文件: ```bash find / -name "types.h" 2>/dev/null ``` 如果找到了该文件,记录下它的路径。 #### 2. 在 Makefile 中指定头文件路径 在 Makefile 里通过 `-I` 选项指定头文件的搜索路径。假设 `types.h` 文件位于 `/path/to/include` 目录下,可按如下方式修改 Makefile: ```makefile CC = gcc CFLAGS = -lm -I/path/to/include main: main.o sum.o new.o $(CC) -o main main.o sum.o new.o $(CFLAGS) main.o: main.c $(CC) -c main.c $(CFLAGS) sum.o: sum.c $(CC) -c sum.c $(CFLAGS) new.o: new.c $(CC) -c new.c $(CFLAGS) clean: rm *.o rm main ``` #### 3. 对比内核版本并修改 Makefile 若使用的是 Linux 内核源码进行编译,参考引用[3]的做法,对比不同内核版本,查看内核顶层的 Makefile 中的 `LINUXINCLUDE` 宏是否缺少必要的路径。例如,若缺少 `-I$(objtree)/arch/$(SRCARCH)/include/generated/uapi` 路径,可添加进去: ```makefile # Use LINUXINCLUDE when you must reference the include/ directory. # Needed to be compatible with the O= option LINUXINCLUDE := \ -I$(srctree)/arch/$(SRCARCH)/include \ -I$(objtree)/arch/$(SRCARCH)/include/generated/uapi \ -I$(objtree)/arch/$(SRCARCH)/include/generated \ $(if $(building_out_of_srctree),-I$(srctree)/include) \ -I$(objtree)/include \ $(USERINCLUDE) ``` #### 4. 复制头文件到系统默认搜索路径 若上述方法都不奏效,可将 `types.h` 文件复制到系统默认的头文件搜索路径,如 `/usr/include` `/usr/local/include`。不过这种方法不推荐,因为可能会造成文件管理混乱。 ```bash sudo cp /path/to/types.h /usr/include/ ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值