1. 程式人生 > >release程式載入呼叫ffmpeg動態庫崩潰

release程式載入呼叫ffmpeg動態庫崩潰

本人在開發音視訊專案時在釋出release版本時遇到ffmpeg庫呼叫崩潰,也是定位了很久。一下是vs工程和qt工程的解決辦法:

1.vs的工程屬性修改聯結器->優化->引用 


2.如果是qt工程,IDE是qtcreator的話,就直接在qt工程pro檔案中新增QMAKE_LFLAGS += /OPT:NOREF

產生崩潰的本質原因:

之所以會造成release呼叫ffmpeg庫會崩潰,原因就release預設的編譯連線是採用優化引用是開啟的,這個編譯連線優化引用的選項的意思就是將未引用的函式消除,也就是才用了這個選項,有一些未呼叫的介面並未被編譯到工程程式碼中。這就導致龐大的ffmpeg介面呼叫異常,實際是用到了,但被優化清除了,就出現的無效的地址訪問。