make: *** [edit] Error 127

objects= can.o gps.o sd.o
CC=arm-linux-gcc
edit: $(objects)
		$(CC) $(objects) -o edit -lpthread # 这代码前有两个tab
	can.o :can.h gps.h sd.h # 这代码前有一个tab
	gps.o :gps.h sd.h # 这代码前有一个tab
	sd.o :sd.h # 这代码前有一个tab
clean:
	rm edit
	rm -f *.o

linux 环境下makefile使用以上写法时,make结果出现错误提示:

make: *** [edit] Error 127

但实际上编译结果edit也生成了。

 

经过仔细查看makefile的代码我才发现原来是依赖文件前面的tab造成的,正确的写法如下:

objects= can.o gps.o sd.o
CC=arm-linux-gcc
edit: $(objects)
	$(CC) $(objects) -o edit -lpthread # 这代码前有一个tab,一个就可以
can.o :can.h gps.h sd.h # 这代码前不能加tab,如果想让代码看起来格式整齐,前面可以加空格。
gps.o :gps.h sd.h # 这代码前不能加tab,如果想让代码看起来格式整齐,前面可以加空格。
sd.o :sd.h # 这代码前不能加tab,如果想让代码看起来格式整齐,前面可以加空格。
clean:
	rm edit
	rm -f *.o

makefile写成这样再次make结果正常。

以上情况虽不是大问题,偶尔纠结起来,也很费时间,特此记录,以备后查。
 

 

你可能感兴趣的:(arm,Linux)