linux 下面编译FFMPEG
1.安裝SDL,
1、make時出現?fatal error: X11/extensions/XShm.h: No such file or directory
解決辦法:搜到的解決辦法是
sudo apt-get install x11proto-xext-dev
sudo apt-get install libxext-dev
========================================================================
2、之后make又出現以下問題:
./src/video/x11/SDL_x11sym.h:168:17: error: conflicting types for _XData32?
?SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
? ? ? ? ? ? ? ? ?^
./src/video/x11/SDL_x11dyn.c:95:5: note: in definition of macro 釹DL_X11_SYM?
? rc fn params { ret p##fn args ; }
? ? ?^
In file included from ./src/video/x11/SDL_x11dyn.h:34:0,
? ? ? ? ? ? ? ? ?from ./src/video/x11/SDL_x11dyn.c:26:
/usr/include/X11/Xlibint.h:568:12: note: previous declaration of 鈅XData32?was here
?extern int _XData32(
? ? ? ? ? ? ^
make: *** [build/SDL_x11dyn.lo] Error 1
解決方案:查閱了一些資料,發現是libx11-dev版本問題(查看版本如圖),版本>1.5.99,所以需要修改src/video/x11/SDL_x11sym.h 文件,按照提示修改168行,
修改如下:
原來是:SDL_X11_SYM(int,_XData32,(Display *dpy,register ?long *data,unsigned len),(dpy,data,len),return)
改后添加一個單詞即可:(_Xconst)
SDL_X11_SYM(int,_XData32,(Display *dpy,register_Xconst long *data,unsigned len),(dpy,data,len),return)
再make 和 sudo make install就可以了。
2.將FFMPEG不要拷到共享目錄,拷到/usr/local/ffmpeg下面,
到ffmpeg的官網下載最新的源碼包http://www.ffmpeg.org/。并解壓到你習慣的位置(我這里依然解壓在/根目錄下)然后對他的配置文件稍作修改,原因是為了讓編譯出來的so庫適合Android。
將
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
改成
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
這里無腦改即可,不需要做其它修改。
下面執行:
./configure --enable-shared --disable-yasm --enable-ffplay --prefix=/usr/local/ffmpeg
3.make install
4.要把安裝后的所有SO,拷貝到/usr/local/lib下,才能運行,或者程序運行時,指定運行加載的庫路徑。
總結
以上是生活随笔為你收集整理的linux 下面编译FFMPEG的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ps -aux|grep 详细信息
- 下一篇: [转]Linux下的Makefile