repl.it环境开发拼写检查程序makefile报missing separator错误求助
Makefile
missing separator 报错解决方案 报错触发原因
makefile:2: *** missing separator. Stop 是Makefile最常见的语法报错之一,触发原因是Makefile要求所有规则对应的执行命令,行首必须使用单个TAB字符缩进,不支持用多个空格替代。你贴出的Makefile中所有gcc命令的行首都是空格,完全不符合语法要求。
另外你当前的Makefile还存在一处逻辑缺陷:第一行生成a.out的依赖列表里包含spell.o,但整个Makefile没有写spell.o对应的编译规则,就算修好了缩进问题,后续编译也会报找不到目标spell.o的错误。
修复步骤
- 关闭repl.it编辑器的「Tab自动转空格」设置,避免输入缩进时自动变成空格
- 把所有
gcc命令行首的空格全部删除,替换为1个TAB字符 - 补全
spell.o对应的编译规则,可根据你的项目实际依赖调整对应文件
修复后参考Makefile
a.out: main.o spell_lib.o spell.o gcc *.o main.o: main.c spell_lib.h gcc -c main.c spell_lib.o: spell_lib.h spell_lib.c gcc -c spell_lib.c # 补全的spell.o编译规则,有其他依赖可自行调整 spell.o: spell.c spell_lib.h gcc -c spell.c
注意:上述代码中所有
gcc行的行首都是单个TAB字符,复制后需要确认缩进没有被自动转换为空格。
内容的提问来源于stack exchange,提问作者AnonCham
相关产品推荐
相关产品推荐

