Re: [問題] makefile的寫法問題

看板C_and_CPP作者 (pomelocandy)時間10年前 (2013/08/22 08:33), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串3/5 (看更多)
※ 引述《Zoxge (Zoxge)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : Linux : 問題(Question): : makefile有個好處是可以自行判斷檔案有沒有被改過,沒改過就不必重編 : 有個問題想請教一下.. : http://www.study-area.org/cyril/opentools/opentools/makefile.html : 這個網頁的例子 : 如果有很多個.cpp檔 : 就必須要有每個.cpp對應的target : 例如command.cpp,就有command.o這個target : command.o :command.c command.h : $(CC) -o command.o command.c : 但問題來了,當.cpp檔有幾百幾千個,又想要能自行判斷每個檔案是否被改過 : 這樣寫makefile不就xxx.o這樣的target也得要寫幾百幾千個 = = : 請問有比較輕鬆的寫法嗎? : 謝謝大家 我的做法是利用gcc 自動比對的方式 其實就是B大所說的方法: %.o:%.cpp $(CXX) -c "$<" -o "$@" $(CXXFLAGS) $(INCLUDE) @$(MOVE) $@ $(LIBRARY_DIR) 在遇到.cpp的時候,會自動呼叫這行轉成.o 而一般好像比較建議單獨的.cpp檔編成一個.o -- ______ |\ / \ | \ / ● ● \ |__\ / ______ \ | /   \__/   \___| /______________\ | -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.45.131 ※ 編輯: lc85301 來自: 140.112.45.131 (08/22 09:07)

08/23 00:04, , 1F
感謝 可以請問@$(MOVE) $@ $(LIBRARY_DIR)的目的是什麼嗎?
08/23 00:04, 1F

08/23 00:06, , 2F
想借題問一下 預設build出來的.o會和makefile在同一個資料夾
08/23 00:06, 2F

08/23 00:06, , 3F
如果我想把這些.o集中到某個資料夾統一放,該怎麼做呢?
08/23 00:06, 3F

08/23 01:08, , 4F
樓上可以參考我下一篇的寫法
08/23 01:08, 4F

08/23 01:22, , 5F
至於你問的那行 最前面的 @ 表示不顯示這行指令
08/23 01:22, 5F

08/23 01:22, , 6F
$@ 是這個指令的目標 ( : 左邊的東西)
08/23 01:22, 6F

08/23 01:23, , 7F
所以其實就是你在問的功能的一個寫法 編譯完後移去一個目錄
08/23 01:23, 7F

08/23 01:23, , 8F
另一個寫法就像我下一篇寫的直接在 pattern line 上寫資料夾
08/23 01:23, 8F

08/23 22:07, , 9F
我也覺得LPH大的寫法比較完整,看他的,這篇當垃圾
08/23 22:07, 9F
文章代碼(AID): #1I5LnQfo (C_and_CPP)
文章代碼(AID): #1I5LnQfo (C_and_CPP)