Re: Makefile的gcc加入-I沒做用
※ 引述《realmojo (( ̄▽ ̄)╭∩╮)》之銘言:
: 我在bash下指令
: gcc hello.c -I./myinclude 是可以成功compile出a.out的
: 但是改在Makefile如下,打make,就會出現找不到.h檔 No Such File 的問題
: main: hello.o
: gcc -Wall -o $@ $^ -I./myinclude
: 該如何改?
我假設你的Makefile只有上述的那兩行 XD
main: hello.o
gcc -Wall -o $@ $^ -I./myinclude
^^^^^^^^^^^^^
這個時候用 -I其實沒有效果,因為你這行實際上是做linking
根據你寫的規則,main這個target需要hello.o,但是你沒有描述他是怎麼產生的。
所以make他用內建的 %.o: %.c rule 來產生需要的 hello.o。
然而,內建的rule並沒有包含 -I./myinclude這個參數,因此會找不到需要的 header。
改寫成這樣:
%.o: %.c
$(CC) -c $< -o $@ -Wall -I./myinclude
main: hello.o
$(CC) $^ -o $@ -Wall
或者乾脆把main:hello.o 的hello.o去掉應該都會work。
有錯的話請不吝指教,謝謝。
--
Coding 日誌 & Linux 使用心得
Rinoworks Blog
http://rinoworks.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.197.32
推
12/15 12:01, , 1F
12/15 12:01, 1F
推
12/15 12:03, , 2F
12/15 12:03, 2F
→
12/15 14:33, , 3F
12/15 14:33, 3F
推
12/15 16:20, , 4F
12/15 16:20, 4F
→
12/15 16:21, , 5F
12/15 16:21, 5F
→
12/15 17:02, , 6F
12/15 17:02, 6F
推
12/15 17:59, , 7F
12/15 17:59, 7F
推
12/15 18:06, , 8F
12/15 18:06, 8F
→
12/15 18:07, , 9F
12/15 18:07, 9F
→
12/15 18:08, , 10F
12/15 18:08, 10F
→
12/15 19:56, , 11F
12/15 19:56, 11F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):