看板 Linux 關於我們 聯絡資訊
小弟最近剛入門Linux 想嘗試一些階層式makefile管理 踢到鐵板...來問兩個蠢問題 環境: ubuntu 16.04 架構: /home/xx/main - main.c - makefile /home/xx/plus - plus.c - plus.mk makefile內容為: plus.mk: 1: OBJ_C = main.c $(OBJ_C) += plus.c 2: 3: include plus.mk 4: 5: out: $(OBJ_C) 6: @echo $(OBJ_C) 7: gcc -c $^ make下去後,會說找不到 plus.mk,上網查了一下 使用 --include-dir=../plus or -I../plus --include-dir=/home/xx/plus or -I/home/xx/plus (上述的指令我都寫在 include plus.mk上面) 上述四種都會失敗,目前成功的是 直接在第3行 暴力寫出"include ../plus/plus.mk" Q1:想把路徑拉出來,讓第3行乾淨的 include xx.mk 我指令使用錯嗎? Q2:我假如成功引用plus.mk後 但是我的第6行 顯示$(OBJ_C)這個變數時,只有main.c 我想問說,如何讓plus.c 附加上去? 謝謝各位高手們... 看完小弟愚蠢的問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.231.42.3 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1586273243.A.358.html
Bencrie: plus.mk 應該是 OBJ_C += plus.c 吧 04/08 00:42
Bencrie: 怕展開時間點不對就 OBJ_C:=$(OBJ_C) plus.c 04/08 00:43
Gold740716: 你是打 make -I../plus 嗎? 04/08 10:51
j5128709: 感謝Ben大解惑Q2, @gold大 我犯蠢了,我是在內容裡加上 04/08 11:07
j5128709: -I 04/08 11:08
j5128709: 那有方法再內容新增路徑,而不是在輸入make時加入呢? 04/08 11:13
j5128709: 我目前成功有 vpath, 還有其他方法嘛? 再次感謝兩 04/08 11:13
Gold740716: 翻一翻 make 的內建變數能不能控制 -I 吧 04/08 11:40
Gold740716: 不然就直接寫 include ../plus/plus.mk 04/08 11:40
Gold740716: 試試看 .INCLUDE_DIRS = ../plus 04/08 12:11
Gold740716: 好像沒用,這個變數似乎是用來讀取的 04/08 12:27