Makefile报错‘No rule to make target 'CC'’如何解决?
解决Makefile编译cub3d时的"No rule to make target 'CC'"错误
问题根源
你的Makefile中SRC变量的定义末尾多了一个反斜杠:
SRC = gnl/gnl.c \ gnl/gnl_utils.c \ main.c \
这个反斜杠会让Make认为CC = gcc是SRC变量的延续内容,导致CC被当成需要构建的目标文件。而Make找不到生成CC的规则,就会抛出No rule to make target 'CC'的错误。
修复步骤
- 修正SRC变量定义:删除
main.c行末尾的反斜杠,让变量定义在该行正常结束:
SRC = gnl/gnl.c \ gnl/gnl_utils.c \ main.c
这样后续的CC、CFLAGS等变量就能被Make正确解析。
- (可选)优化clean规则:当前
clean规则只删除当前目录的.o文件,而你的目标文件包含gnl/目录下的文件,建议改成删除所有生成的目标文件,避免残留:
clean: rm -rf $(OBJ) @make clean -C libft/
验证修复
修改后重新执行make,Make会正常识别CC为编译器变量,调用gcc编译所有源文件并链接生成cub3d可执行文件。
内容的提问来源于stack exchange,提问作者mta
相关产品推荐
相关产品推荐

