作者woptspencil (小熊)
看板LinuxDev
標題[問題] Makefile的dependency
時間Mon Feb 13 17:18:56 2012
請問各位在寫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
1F:→ alongalone:我看過的好像都不太會寫 *.h; 不過這個makefile可以在 02/13 20:52
2F:→ alongalone:整理一下, 把 *.h另外整理成一個變數 02/13 20:53
3F:推 imprazaguy:A.h 有改變,像是增加 A 的 member,因為會動到 memory 02/14 09:35
4F:→ imprazaguy:layout,所以 A.o和 B.o 都需要重新編譯。 02/14 09:37
5F:→ imprazaguy:建議原 PO 可以使用 autotools 或 cmake 之類的工具, 02/14 09:39
6F:→ imprazaguy:較省事。 02/14 09:39
7F:→ woptspencil:感謝樓上!! 02/14 16:38