看板 LinuxDev 關於我們 聯絡資訊
請問各位在寫c++的makefile的時候 會不會把superclass的source寫到subclass的dependency裡面呢? 比如B繼承A,main直接使用B,那麼Makefile應該是這樣: all: main main: main.o A.o B.o g++ -o main main.o A.o B.o main.o: main.cpp A.o: A.cpp A.h B.o: B.cpp B.h A.cpp A.h 紅色跟黃色的那部分需不需要呢? 經過我的測試,如果A.cpp有什麼更動,只要重新compile A.o就可以了 B.o是不用重新compile的 但看網路上一些example似乎是會把A.h給寫進dependency裡面的 是因為A.h裡面可能會有一些#define被更動嗎? 那是不是應該把全部的define統一歸到某個defs.h呢? 因為小弟最近要寫一個繼承有點複雜的project的makefile 那該不會要把某個subclass上面一路繼承的東西全部寫到dependency吧? 這樣似乎也不太容易維護 請各位幫幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.106.69
alongalone:我看過的好像都不太會寫 *.h; 不過這個makefile可以在 02/13 20:52
alongalone:整理一下, 把 *.h另外整理成一個變數 02/13 20:53
imprazaguy:A.h 有改變,像是增加 A 的 member,因為會動到 memory 02/14 09:35
imprazaguy:layout,所以 A.o和 B.o 都需要重新編譯。 02/14 09:37
imprazaguy:建議原 PO 可以使用 autotools 或 cmake 之類的工具, 02/14 09:39
imprazaguy:較省事。 02/14 09:39
woptspencil:感謝樓上!! 02/14 16:38