1. 程式人生 > >FFMPEG DEBUG xxxx函式無法連結XXX.DLL

FFMPEG DEBUG xxxx函式無法連結XXX.DLL

環境:VS2015 Debug 模式: FFMPEG LIB檔案、DLL檔案都是通過官網下載

出現問題:xxxx函式無法連結XXX.DLL

通過跟蹤標頭檔案發現 XXXX函式並不在XXX.DLL 中

再通過調整新增LIB檔案的順序,發現 後面的XXX.DLL 會跟隨改變,大體將問題確定到LIB檔案和DLL檔案不匹配的問題上。

嘗試:由於使用最終使用時EXE要呼叫DLL,所以通過dumplin來將DLL轉換為.DEF檔案,再通過.DEF檔案轉換為.LIB檔案

vc/bin目錄下  命令列模式輸入:

dumpbin /exports avcodec-58.dll > avcodec-58.def

再輸入:

lib /def:avcodec-58..def /machine:i386 /out:avcodec-58..lib

得到.LIB檔案。測試,未成功。

後根據下載的LIB檔案中自帶的.DEF檔案,生成.LIB檔案,即

lib /def:avcodec-58..def /machine:i386 /out:avcodec-58.lib

生成的.LIB檔案可以正常使用。

兩者的區別在於.DEF檔案不同,一個是.LIB下載時LIB資料夾下的.DEF,一個是.DLL生成的.DEF檔案。兩者可能由於我本地的工具環境有所差別。

此時可以除錯包含FFMPEG的程式。

具體原因未知,之後再探索,如有知道的也可以賜教一番。