1. 程式人生 > >WIN10下使用VS2017的MSVC編譯FFMPEG3.4.2動態靜態庫

WIN10下使用VS2017的MSVC編譯FFMPEG3.4.2動態靜態庫

之前在Win10下成功編譯nginx給了我不少信心,這兩天嘗試在Win10下編譯FFMPEG,沒想到給搗鼓成功了,記錄一下。

首先下載MINGW,這個文章最後放我打包好的下載地址,直接將壓縮包解壓到C盤根目錄下即可,即安裝目錄為C:\MinGW

裡面已經包含了編譯FFMPEG所需要的工具。

解壓好後進到目錄C:\MinGW\msys\1.0下,對msys.bat檔案進行編輯

第二行路徑修改為你安裝的VS2017路徑。

裡面的Makefile即目錄經過了簡單修改,去掉了ftools即doc,test等的編譯。

直接雙擊執行msys.bat,進入ffmpeg工程目錄下,然後進行專案配置,這裡貼下我的配置:

靜態庫:

./configure --target-os=win32 --disable-debug --enable-static --prefix=./vs2017_build_static --toolchain=msvc --disable-encoders --disable-ffserver --disable-ffplay --disable-avdevice --disable-avfilter --disable-postproc

動態庫:

./configure --target-os=win32 --disable-debug --disable-static --enable-shared --prefix=./vs2017_build --toolchain=msvc --disable-encoders --disable-ffserver --disable-ffplay --disable-avdevice --disable-avfilter --disable-postproc

--target-os:目標為Window平臺,自然選擇win32

--disable-debug:禁用了除錯資訊

--prefix:這是執行make install後庫檔案所存放目錄

--toolchain:編譯器選擇,使用VS2017的msvc

--disable-encoders:禁用編碼器,因為我只使用解碼功能

--disable-ffserver:禁用伺服器

--disable-ffplay:禁止生成ffplay測試程式,我給刪掉了已經

--disable-avdevice:之後幾個disable都是我用不到的庫,都禁用了

根據情況執行configure之後會在專案根目錄下生成config.h檔案,這個檔案雖然說不建議編輯,但是要進行一次編輯的,打包儲存為utf-8編碼,預設是GBK編碼,編譯會不斷彈出編碼警告,如果不嫌煩可以不管;

好了,接下來直接make就OK了,正常情況下是不會有問題的;

make完之後執行make install將庫檔案以及標頭檔案複製到之前配置的存放目錄裡後就OK了。

接下來講講怎麼用VS2017去呼叫靜態庫,動態庫就是生成的dll以及lib檔案,沒啥好說的,靜態庫這裡生成的是.a檔案,乍一看有點暈,因為.a靜態庫是LINUX下的庫檔案,在Windows上VS中能用嗎?可放心使用,因為使用的是msvc編譯的,就像.lib靜態庫一樣使用即可,下面看下我的專案中呼叫的靜態庫配置:

好了,就講這些了,工具包下載地址,一個包總是上傳失敗,CSDN的BUG不少啊。。。

QQ技術群: 590411159