源文件为:
test1:main.o func.o MyMessage.o
gcc -o test1 main.o func.o MyMessage.o
main.o:main.c ActionFunc.h MyMessage.h
gcc -c main.c
func.o:ActionFunc.c ActionFunc.h
gcc -c ActionFunc.c
MyMessage.o:MyMessage.c MyMessage.h
gcc -c MyMessage.c
clean:
rm test1 main.o func.o MyMessage.o
错误提示是:
lqh@ubuntu:~/myfile/c_test$ make
make: *** No rule to make target `func.o', needed by `test1'. Stop.
尚未解决!
直接敲命令:lqh@ubuntu:~/myfile/c_test$ gcc -o main.o MyMessage.c MyMessage.h ActionFunc.c ActionFunc.h main.c
运行OK,能得到结果。但是写成makefile就出错了!
解答:经过修改正常运行,如下:
mytest:main.o ActionFunc.o MyMessage.o
gcc -o mytest main.o ActionFunc.o MyMessage.o
main.o:main.c ActionFunc.h MyMessage.h gcc -c main.c
ActionFunc.o:ActionFunc.c ActionFunc.h gcc -c ActionFunc.c
MyMessage.o:MyMessage.c MyMessage.h gcc -c MyMessage.c
clean:
rm test1 main.o func.o MyMessage.o