vs2013编译ffmpeg之三十五 xavs、xvidcore
xavs
對應ffmpeg configure選項–enable-libxavs。
http://xavs.sourceforge.net/
http://xavs.sourceforge.net/xavs_ffmpeg.html
下載代碼命令:
svn checkout svn://svn.code.sf.net/p/xavs/code/trunk xavs-code中國AVS標準的編解碼庫,代碼里面自帶MSVC工程。在vs2013下編譯有下面的錯誤:
xavs-code_20160829\common\common.h(73): fatal error C1083: Cannot open include file: 'pthread.h': No such file or directory直接用mingw或msys環(huán)境里面的pthread.h,同時需要sched.h。也需要將pthread.lib加到工程里面。pthread.lib是拷貝了\MinGW\lib\libpthread.a,只是改了名字。
下面的錯誤:
error LNK2026: module unsafe for SAFESEH image解決的辦法:link->advance->Image Has Safe Exception Handlers設置為No (/SAFESEH:NO)。
為了不修改ffmpeg的configure文件,xavs工程里面,libavs輸出的庫名字改成xavs.lib,原始的是libxavs.lib。
xvidcore
對應ffmpeg configure選項–enable-libxvid。
下載xvidcore-1.3.2.tar.gz,xvidcore\build\win32下面有MSVC2010的sln工程,打開后編譯發(fā)現(xiàn)缺少nasm。
下載nasm-2.11.02-win32.zip,64位系統(tǒng)下載nasm-2.11.02-win64.zip,將其中的nasm.exe放到C:\Program Files\Microsoft Visual Studio 10.0\VC\bin下面,然后就可以編譯了。
VS2010打開后,生成的庫文件是Debug/libxvidcore.lib(VS2010生成的bin/xvidcore.lib太小,看上去是用于dll的),而VS2013生成的是bin/xvidcore.lib。這個可以通過修改工程配置來改變,libxvidcore工程屬性->General->Configuration Type設置成Static library (.lib),即生成靜態(tài)庫。
鏈接生成.exe文件的時候會有下面的錯誤:
2>LINK : fatal error LNK1104: cannot open file 'xvidcore.dll.a'將xvid_decraw、xvid_encraw兩個工程屬性里面,link->input->Additional Dependencies里面,xvidcore.dll.a改成xvidcore.lib,在xvidcore\build\win32\bin下面生成的是xvidcore.lib。
msys+gcc編譯xvidcore的時候要將configure里面的-mno-cygwin都去掉,因為gcc不認識這個選項。
總結(jié)
以上是生活随笔為你收集整理的vs2013编译ffmpeg之三十五 xavs、xvidcore的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# installshield使用教程
- 下一篇: 工业控制系统概述