[英]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.