目錄
一、首先說明出現這個問題的機器配置
PC:Windows 7 64位
Qt Creater:V4.2.1 Based on Qt 5.8.0(MSVC2015 32bit)
FFepeg:ffmpeg-4.2-win32-dev(關於Qt Creater如何配置FFepeg也比較簡單,大家百度一下即可)
二、問題描述
在Qt Creater 中的 xxx.pro 文件中配置添加好FFepeg的路徑後,簡單的添加了FFepeg的一個函數,驗證是否配置成功,鏈路是否打通。
現象:構建(編譯)項目可以正常通過,無警告無錯誤提示
運行的時候提示錯誤,“xxx.exe程序異常結束。”
三、摸索解決
開始也是在網上各種查找,搜了一些關於這個問題的解釋和解決方法,比如說:
1.是環境變量的問題。加上也無果,沒有解決問題
2.影子創建比較蛋疼,建議去掉。去掉也無果,沒有解決問題
3.要各種倒騰添加庫文件,方法肯定有很多種,大家也必要來回試了(一般主流的方法有兩大類,一類是直接在xxx.pro文件中添加頭文件和庫文件的路徑;一類是點擊工程右鍵--->添加庫--->外部庫.....)
4...... 等等,總之試了都是沒有結果
四:最終解決
在測試了前面的方法沒有結果時,心想這還沒開始呢,就被這麼個小事情給擋住了,着實可惡!靜下心想了想,可以試一下,在調試模式下會出現什麼現象呢!
問題:During startup program exited with code 0xc0000135
大概意思是在啓動程序時退出了(編譯肯定是沒有問題)
分析:既然是啓動運行的時候出現了問題,那我們是不是可以直接到Debug模式下生成的exe路徑下運行程序呢?--->在那裏我們是不是缺少什麼東西導致程序的奔潰?
顯而易見這裏需要運行的xxx.exe程序缺少庫文件,是因爲我用到了外部的dll庫,lib庫我是添加到了.pro文件中了的,所以編譯時不會出錯,運行的時候沒有找到這個庫文件就會報錯。
而提示中提示我們缺少avcodec-58.dll,可是在ffmpeg-4.2-win32-dev 這個文件夾下沒有找到啊?怎麼辦
解釋:程序所需要的庫文件在 ffmpeg-4.2-win32-shared (需要在官網下載shared類型的包)文件夾下
之後將ffmpeg-4.2-win32-shared/bin下的所有文件拷貝到(build-FFepegForQtFirstTest-Desktop_Qt_5_8_0_MinGW_32bit-Debug)xxx\debug\下(也就是大家的構建目錄)
之後大家在Qt Creater中編譯運行一下,沒有出現程序異常結束的錯誤,完美解決。
如果這樣還是會出現程序異常結束的話,不妨清除一下錯誤,再編譯運行一下試試。
總結:出現 “程序異常錯誤” 的原因基本上是因爲庫文件的原因導致的,大家可以從庫文件上進行查找原因
無非就是:
1:庫文件的路徑找不到
2:庫文件添加錯誤(例如32和64位庫文件使用錯誤,本來是32位環境使用了64位的庫文件)
3、庫文件缺失(少添加)