作者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