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