鍍金池/ 問答/C  網(wǎng)絡(luò)安全/ makefile的幾點疑問

makefile的幾點疑問

鑒于Makefile與C難舍難分,因此標(biāo)簽中添加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結(jié)果沒有執(zhí)行,這是為什么?

回答
編輯回答
老梗

先去把 Makefile 的文檔看了(你的第一個問題),和基本的 shell 知識了解了(你的第二個問題),再說吧。

2017年10月11日 19:42
編輯回答
幼梔

刪除.o等一般使用虛目標(biāo)clean解決。
運行編譯成果 使用虛目標(biāo) run 解決。

make使用-f參數(shù)指定makefile文件名。
make不帶目標(biāo)執(zhí)行時 就去執(zhí)行默認目標(biāo)(第一個列出來的目標(biāo))

makefile對前導(dǎo)空白要求嚴(yán)格。

2018年1月17日 10:58