[問題] makefile的寫法問題

看板C_and_CPP作者 (Zoxge)時間12年前 (2013/08/21 16:24), 編輯推噓6(6012)
留言18則, 10人參與, 最新討論串1/5 (看更多)
開發平台(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也得要寫幾百幾千個 = = 請問有比較輕鬆的寫法嗎? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.197.207

08/22 00:30, , 1F
可以用automake配autoconf 不過也是挺複雜的
08/22 00:30, 1F

08/22 00:30, , 2F
不然就用IDE幫忙做
08/22 00:30, 2F

08/22 00:34, , 3F
bjam、scons、cmake 等等都比單用 make 好得多
08/22 00:34, 3F

08/22 00:39, , 4F

08/22 00:39, , 5F
%.o: %.c %.h 搭配 wildcard
08/22 00:39, 5F

08/22 00:40, , 6F
個人是習慣同 target 的檔案放一起,方便 wildcard 抓檔案
08/22 00:40, 6F

08/22 00:46, , 7F
header的相依性其實要用makedepend來產生才正確
08/22 00:46, 7F

08/22 00:47, , 8F
所以我還是建議用進步一點的工具 也省得打錯編譯指令
08/22 00:47, 8F

08/22 00:51, , 9F
可以請B大說得詳細一點嗎? 不太懂意思呀 謝謝
08/22 00:51, 9F

08/22 00:55, , 10F
cmake +1
08/22 00:55, 10F

08/22 00:56, , 11F
如: http://0rz.tw/z3GzQ 先例用wildcard建立所有目標
08/22 00:56, 11F

08/22 00:57, , 12F
然後下面利用 %.o : %.cpp ,搭配$<(對應到.cpp)和$@(.o)
08/22 00:57, 12F

08/22 00:57, , 13F
來撰寫compiling的指令即可。
08/22 00:57, 13F

08/22 01:14, , 14F
cmake +1
08/22 01:14, 14F

08/22 01:25, , 15F
gcc也可以幫你生dependency (-M)
08/22 01:25, 15F

08/22 15:35, , 16F
%.o: %.cpp 好像是 GNU extension 用 .cpp.o 也可以
08/22 15:35, 16F

08/22 15:36, , 17F
或是設好 CC / CXX / CFLAGS / CXXFLAGS 用 make 內建規則
08/22 15:36, 17F

08/22 15:36, , 18F
這樣直接列出 .o 應該就可以用了
08/22 15:36, 18F
文章代碼(AID): #1I5Ece6T (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1I5Ece6T (C_and_CPP)