簡體   English   中英

為什么我的簡單 makefile 只打印規則?

[英]Why is my simple makefile only printing the rule?

我的makefile是這樣寫的:

all: hello

hello: hello.c
    gcc hello.c -o hello

當我在終端中鍵入“make”時,會打印規則gcc hello.c -o hello ,但不會運行。 我可以說是因為正在創建 no.o 文件。 如果我在終端中輸入規則,它會按預期工作。 我正在使用 vim 來編輯文件。 怎么了?

命令gcc hello.c -o hello不會生成任何.o文件。 它只會生成您請求的 output 文件, hello

你通常會寫你的Makefile更像這樣:

all: hello

hello: hello.o
    $(CC) -o $@ $<

也就是說,可執行文件依賴於 object 文件( .o ),並且make的內置規則知道如何從.c文件生成.o文件。

要生成 object 文件,請使用-c標志。

gcc -c hello.c

例如,

all: hello

hello: hello.o
    gcc -o hello hello.o

hello.o: hello.c
    gcc -c hello.c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM