用VC2005/2008編譯代碼時,經常要鏈接其他lib,最傳統的方法就是在Linker->Input->Additional Dependencies中添加對應的lib。
另外一個功能是project中的Project Dependencies,在Depends on里可以選擇工程依賴的項目
一直以來,我一直認為Project Dependencies只是來決定編譯順序的,在項目很多,而且又需要經常編譯時,一般就會調節下這個里面的依賴,讓工程編譯順序可以正確。但一般情況下這個功能在我的機器上是睡覺的
后來,突然發現,Project Dependencies是可以幫助項目鏈接lib的,也就是說,對于在同一個Solution的項目的lib依賴,可以不進入->Input->Additional Dependencies中進行添加。
這個功能是保存在Solution內的,因此可以被源代碼管理軟件給別人共享
功能對比:
傳統手動添加lib
優點:
適合大部分的編譯器,可以深刻理解linker的流程,項目被移出Solution后也不用重新設置其他關聯項目,傳統而有效
缺點:
設置比較麻煩
項目依賴添加lib
優點:
既解決了lib引用,也決定了編譯順序
缺點:
如果即使用傳統方法,又使用項目依賴,可能會造成不預定的多次編譯
離開VC后,很難適應其他IDE或者編譯器
其他項目依賴的基礎庫被移出Solution后再倒回來后,需要重新設置依賴
Solution丟失,關聯也就丟失,單獨編譯某個項目,需要重新設置依賴
總結
既然用MS的東西,就選擇MS的優化功能,這是MSDN推薦功能。
如果既要保持跨平臺的習慣,可以繼續使用傳統方法,因人而異
MS的東西讓電腦和編程都變的簡單,但并不一定是最強大的,這就是2|8定律