Make和GCC是一个非常好的依赖检查组合。例如,GCC可以自动生成“make”依赖文件(-MD命令行切换),以便能够重建依赖于给定报头的所有源文件。
我有我切正贴到我的makefile一些简单的规则:
# compile c files
%.o: %.c
${CC} ${CFLAGS} -c $< -MD -MF $(<:%.c=%.dep) -o [email protected]
# compile c++ files
%.opp: %.cpp
${CPP} ${CPPFLAGS} -c $< -MD -MF $(<:%.cpp=%.dep) -o [email protected]
现在,如果你的目标文件中说的OBJ_C和OBJ_CPP列表中声明:
.PHONY: cleandep
cleandep:
rm -f $(OBJ_C:%.o=%.dep) $(OBJ_CPP:%.opp=%.dep)
-include $(OBJ_C:%.o=%.dep) $(OBJ_CPP:%.opp=%.dep)
当然,可以跟踪其他项目等的依赖关系,例如必要时重建共享库。
例如,如果你的其他团队始终把自己最新的DLL某些共享文件夹:
myapp: ${SRC_CPP} ${LIB_DIR}other_team.lib
...
${LIB_DIR}other_team.lib: /shared_folder/latest/other_team.lib
cp /shared_folder/latest/other_team.lib ${LIB_DIR}other_team.lib
使用挣钱的时候,问题是,我必须至少一次创造一切条件,因此还需要依赖的源文件。 特别是,在重建相关库时,它可能非常耗时且严重影响生产力。或者我错过了什么? – weberste 2009-07-16 08:54:52