鉴于Makefile与C难舍难分,因此标签中添加c,希望知道的大佬给予解答。
下午看了一会Makefile的文章,有些疑问。
Makefile文件:
# Makefile is a binary file
main:fun.o main.o
gcc -o main fun.o main.o
fun.o: fun.c
gcc -c fun.c
main.o: main.c
gcc -c main.c
由于名字是Makefile因此直接输入make就可以,如果将上面文件重命名为xxx make xxx就可以了,但是make main也可以,这是什么原理?
后面我将Makefile改成如下形式
# Makefile is a binary file
main:fun.o main.o
gcc -o main fun.o main.o
./main
rm *.o
fun.o: fun.c
gcc -c fun.c
main.o: main.c
gcc -c main.c
添加了./main与 rm *.o结果没有执行,这是为什么?
删除.o等一般使用虚目标clean解决。
运行编译成果 使用虚目标 run 解决。
make使用
-f
参数指定makefile文件名。make不带目标执行时 就去执行默认目标(第一个列出来的目标)
makefile对前导空白要求严格。