虽然 Make 工作正常,但默认情况下它只编译那些已更改的文件,即使我运行make all
. 它说像Nothing to Do
。
我需要编译所有文件的一种情况是当我更改在多个.c
文件中访问的头文件中的某些内容时。但是在我再次打开任何.c
文件之前,make 无法识别它。save & quit
Makefile 内容可以在这篇文章中看到:
关于 Makefile 的问题 - 什么是“$+”&这里调用的 .c 文件/依赖项在哪里?
虽然这也是一个问题,但我想在这里讨论的实际问题是不同的。
为了编译所有文件我所做的是我运行make clean
它确实删除了所有目标文件然后我make
再次运行但这次它给出了一个错误: -
....
mec/gen_crc32table > mec/crc32table.h
mec/gen_crc32table: 1: mec/gen_crc32table: Syntax error: end of file unexpected
(expecting ")")
make: *** [mec/crc32table.h] Error 2
我检查了内容,crc32table.h
但文件为空。crc32table.h
因此,我从以前的代码备份中复制,现在它成功运行。现在我make clean
再次运行并“制作”以检查它,但这次它工作正常。
不知这里有什么玄机?
我猜这些台词正在做一些我无法理解的事情?请帮助我。
crc32.o: mec/crc32table.h mec/crc32.c
$(CC) -o $@ -c -I. $(CFLAGS) mec/crc32.c
mec/crc32table.h: mec/gen_crc32table
mec/gen_crc32table > mec/crc32table.h