[問題] Makefile的dependency

看板LinuxDev作者 (小熊)時間14年前 (2012/02/13 17:18), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
請問各位在寫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

02/13 20:52, , 1F
我看過的好像都不太會寫 *.h; 不過這個makefile可以在
02/13 20:52, 1F

02/13 20:53, , 2F
整理一下, 把 *.h另外整理成一個變數
02/13 20:53, 2F

02/14 09:35, , 3F
A.h 有改變,像是增加 A 的 member,因為會動到 memory
02/14 09:35, 3F

02/14 09:37, , 4F
layout,所以 A.o和 B.o 都需要重新編譯。
02/14 09:37, 4F

02/14 09:39, , 5F
建議原 PO 可以使用 autotools 或 cmake 之類的工具,
02/14 09:39, 5F

02/14 09:39, , 6F
較省事。
02/14 09:39, 6F

02/14 16:38, , 7F
感謝樓上!!
02/14 16:38, 7F
文章代碼(AID): #1FEDM31B (LinuxDev)
文章代碼(AID): #1FEDM31B (LinuxDev)