我刚刚开始查看make文件,但不确定make文件的默认行为(运行命令不带参数的情况下)是在1st之后的目标不是1st的依赖项时。Makefile默认行为
myprogram: main.o foo.o
gcc -o myprogram main.o foo.o
main.o: main.c foo.h
gcc -c main.c
foo.o: foo.c foo.h
gcc -c foo.c
main2.o: main2.c foo2.h
gcc -c main2.c
foo2.o: foo2.c foo2.h
gcc -c foo2.c
所以从上面的,如果我是运行make
和文件main2.c
和foo2.c
更新将命令gcc -c main2.c
和gcc -c foo2.c
都运行?
你的'Makefile'很丑。也许适应[这个例子](http://stackoverflow.com/a/20146082/841108)到您的需要 – 2014-11-06 05:57:07
不会*尝试它*比发布问题更容易? – Beta 2014-11-06 06:03:13
只有命令行上没有指定特定目标时,才会处理make文件中的第一个目标。为了获得所有要处理的目标,当没有给出特定的目标时,然后在任何其他目标之前插入行:SRC =(通配符* .c)然后OBJ =($(SRC):.c:.o)然后INC =($(SRC):.c:.h)然后第一个目标(通常名为'all')all:myprogram $(OBJ)makefile – user3629249 2014-11-06 06:49:25