You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Makefile报错'Makefile:6: *** missing separator. Stop'

Makefile missing separator. Stop 报错解决方案

问题根因

该报错有两个核心问题:

  1. Make语法强制要求,每个目标对应的执行命令行开头必须用单个Tab字符缩进,不能用多个空格代替,你现有Makefile里所有gcc、rm命令前的缩进都是空格,这是触发第6行报错的直接原因。
  2. 现有单文件编译的gcc命令参数错误,-o 后指定的是输出的目标文件名,你写的gcc -c -o disasm.c等于要把编译结果输出到源文件上,会覆盖源码导致编译失败。

修复步骤

  • 替换所有命令行的缩进:把每个gcc命令、rm命令开头的空格缩进全部删掉,替换为1个Tab字符,注意不要用空格凑成和Tab等长的缩进,Make不会识别空格作为命令分隔符。
  • 修正所有单文件编译的gcc参数,正确格式为 gcc -c -o [输出的.o文件名] [对应的.c源文件名],示例:
    把 gcc -c -o disasm.c 修改为 gcc -c -o disasm.o disasm.c,其余elf-parser.o、elf-program_read.o、srec.o的编译命令都按照这个格式修正。

修复后的完整Makefile

all: elfparser

elfparser: disasm.o elf-parser.o elf-parser-main.o elf-program_read.o srec.o
	gcc -o elfparser disasm.o elf-parser.o elf-parser-main.o elf-program_read.o srec.o

elf-parser-main.o: elf-parser-main.c
	gcc -c -o elf-parser-main.o elf-parser-main.c

disasm.o: disasm.c
	gcc -c -o disasm.o disasm.c

elf-parser.o: elf-parser.c
	gcc -c -o elf-parser.o elf-parser.c

elf-program_read.o: elf-program_read.c
	gcc -c -o elf-program_read.o elf-program_read.c
    
srec.o: srec.c
	gcc -c -o srec.o srec.c

clean:
	rm -rf *.o elfparser

内容的提问来源于stack exchange,提问作者vinod boreddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:24:03