移植FFMPEG到VS2008系列之四

這部分主要是引入第三方庫,還有就去去除無關的測試代碼。


7. 引入第三方庫


    必須引入的第三方庫爲zdll.lib,這個庫在網上可以下載到,如若不加入這個庫,很多的函數將鏈接不到。還有在avcodec文件夾下面以lib打頭的文件都是爲引入第三方庫而進行的接口封裝,以適應ffmpeg去調用的相關代碼。最重要的例如libx264,libmp3lame.lib libfdk_aac等。我的x264採用我自己用vs2008編譯的版本,其它的庫也基本上採用vs的版本。暫時不想加入的庫,例如libspeex等可以把這些代碼移出。


8. 去除冗餘和暫時不相關的代碼。


     之前我們把所有的c文件都添加進來,其實有些是沒有必要的。例如有些c文件裏面有一個main函數,它僅僅是爲了測試某個函數接口應用而存在的,這樣的c文件是可以移除。另外,文件名包含template關鍵字的文件也必須要移除,因爲這樣的文件已經被include到其它文件裏面的。如若不移除,單獨編譯這個文件會產生大量的編譯錯誤。另外與網絡相關的模塊也可以暫時移除,當然也可以在tcp.c文件裏面加入windows上的庫ws2_32.lib解決鏈接錯誤。


9. 初始化全局結構體變量


    在前面一部分,對於結構體的初始化,我們用了一個函數去做。所以,在程序剛剛起來的時候,必須調用這些函數去初始化所有的全局結構體變量。由於這樣的結構體變量初始化函數太多太多,不太可能用複製粘貼的方法。一種可行的方法是,在vs開發環境裏面切換到class view選項裏面找到Global functions and variables,選中所有的初始化結構體的函數,然後複製到一個文本文件裏面,再寫一個簡單的正則表達式,將其轉換爲函數調用的格式。前面提到的文件g_var_func_init.c就是自己添加的這些函數調用的代碼,用以初始化全局結構體變量。



綜上所述,排除完所有的編譯錯誤和鏈接錯誤,你就可以在vs2008下面調試ffmpeg的代碼了。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章