我試圖圍繞打造了libavformat一些視頻讀取代碼鏈接了libavformat。獲得編譯的DLL和.lib
文件here後,我建立我的代碼,鏈接器無法找到任何即使我在所提供的.lib
文件已關聯了libavformat符號。在Visual Studio 2010
檢查libavformat.lib
與dumpbin -headers
顯示它將帶有下劃線前綴的所需函數導出。例如,雖然我想呼叫avformat_open_input
,但.lib文件給出了_avformat_open_input
。
這是爲什麼,爲什麼我不能鏈接預編譯的dll?
是您的應用x64平臺呢?也請在這裏複製確切的錯誤信息。 – hege
我只是建立一個32位應用程序。鏈接器錯誤只是您的傳統 LibavVideoReader.obj:錯誤LNK2019:無法解析的外部符號「int __cdecl avformat_open_input(struct AVFormatContext * *,char const *,struct AVInputFormat *,struct AVDictionary * *)」(?avformat_open_input @@ YAHPAPAUAVFormatContext @ @ PBDPAUAVInputFormat @@ PAPAUAVDictionary @@@ Z)在函數中引用... 消息 –
您是否將代碼編譯爲C或C++?如果是後者,你確定這些庫中的C聲明是否包含在'extern「C」'中? – ildjarn