Makefile报missing separator错误:client编译指令批量执行失败但单独运行正常
解决Makefile中"missing separator"报错的问题
这个报错的核心原因是Makefile要求目标对应的命令行必须以Tab键开头缩进,你当前的client目标下的编译指令用了空格缩进而非Tab,导致make无法识别命令的分隔符,进而报错。
虽然这行指令在终端单独运行正常,但Makefile的语法规则对缩进有严格要求——只能用Tab,不能用空格(哪怕是多个空格也不行)。
修正步骤
- 打开你的Makefile,找到
client目标下的编译行,删除开头所有空格,替换成一个Tab键 - 同时检查其他目标(比如
terminal)下的命令行,确保也都是用Tab缩进,避免后续出现同样问题
修正后的完整Makefile示例
CC = gcc UTILS = utils/*.c ENTRY = main.c TARGET = bin/main.exe CLIENT_ENTRY = server/client.c CLIENT_TARGET = bin/client.exe SERVER_ENTRY = server/server.c SERVER_TARGET = bin/server.exe terminal: $(CC) $(UTILS) $(ENTRY) -o $(TARGET) -lreadline client: $(CC) $(CLIENT_ENTRY) -o $(CLIENT_TARGET) all: terminal client
内容的提问来源于stack exchange,提问作者Mudu
相关产品推荐
相关产品推荐

