靜態(tài)lib在交叉工程中經(jīng)常會出現(xiàn)因為lib不是最新的,帶來很多麻煩,之前遇到的一個問題是,在工程A里面修改了工程B里面的文件,但是B工程沒有編譯,這樣工程A里面用到工程B里面的lib是舊的,這樣會造成一種情況是,你在工程A里面調(diào)試程序的時候,發(fā)現(xiàn)明明是可以單步調(diào)試到某語句的,但是實際上卻執(zhí)行到前面或者后面,這是因為這個程序語句沒有在lib里面更新的緣故.
使用dll的好處:
1)便于分工開發(fā),2)便于后期維護(hù)和擴(kuò)展,3)編譯生成的版本少,一般只有調(diào)試和發(fā)布版本的dll4)便于封裝代碼.相對而言,靜態(tài)lib每次都要編譯才生成,不像dll一樣可以進(jìn)行二進(jìn)制更新.并且dll更新版本以后不需要再次編譯,只要給出接口,更新實現(xiàn)就可以更新dll相關(guān)版本了.
一般地在引擎中都強(qiáng)調(diào)多使用dll,將引擎各個模塊寫成dll的形式,這樣方便以后開發(fā)和后期維護(hù),不過dll的一個難辦的地方是:除非你給出你要輸出的接口,否則你不能調(diào)用dll里面的任何東西,這樣就要在生成dll的時候,給出相關(guān)輸出函數(shù)接口,方便提供給client使用.