libvlc源碼編譯

#-1   安裝編譯vlc的必要工具
######VLC須要C11編譯器以及開發工具鏈
######建議使用高於4.9版本的gcc,另外clang/LLVM也是能夠的。若是你是從git倉庫構建,你還須要gnu構建系統即 autotools(autoconf,automake,libtol,gettext)來設置Makefile.並確保這些工具是最新且可用linux

sudo apt-get install git build-essential pkg-config libtool automake autopoint gettext flex bison


#-2  獲取vlc源碼
######可使用ftp獲取官方發佈的正式版本,也可使用git獲取。若是使用的git開發版本,首先須要引導源代碼樹
######若是autotool過期或者丟失 ./bootstrap會失敗git

git clone git://git.videolan.org/vlc.git
cd vlc
./bootstrap


######若是你下載的是官方發佈版本,提取文件,而後進入源碼目錄
wget ftp://ftp.videolan.org/pub/videolan/vlc/2.2.4/vlc-2.2.4.tar.xz
tar xvJf vlc-2.2.4.tar.xz
cd vlc-2.2.4
#-3   獲取,安裝第三方庫
######如今能夠配置VLC了,可是必須先確保全部的依賴關係都已經安裝就緒。
######必須安裝並啓用所需的全部第三方庫。若是未能安裝所需的庫,則可能致使vlc應用程序出現錯誤。
######完整的第三方庫列表能夠從https://wiki.videolan.org/Contrib_Status/獲取macos

sudo apt-get -y install libvorbis-dev libogg-dev libtheora-dev speex libspeex-dev flac libflac-dev \
  x264 libx264-dev liba52-0.7.4-dev mpeg2dec libmpeg2-4-dev faad libfaad-dev faac libfaac-dev \
  lame libmp3lame-dev ffmpeg libavdevice-dev libmad0 libmad0-dev  liboil0.3 libschroedinger-dev \
  libdca-dev twolame libtwolame-dev libmpcdec-dev libvorbisidec1 libvorbisidec-dev libass-dev   \
  libebml-dev libmatroska-dev libdvbpsi-dev libmodplug1 libmodplug-dev libshout3 libshout3-dev \
  libdvdread4 libdvdnav4 libdvdnav-dev livemedia-utils liblivemedia-dev libcddb2 libcddb2-dev libcdio-dev \
  libcdio-utils vcdimager libvcdinfo0 libvcdinfo-dev libgpg-error0 libgpg-error-dev libgcrypt11 libgcrypt11-dev \
  gnutls-bin libgnutls26 libgnutls-dev libdap-dev libxml2 libxml2-dev \
  libjpeg8 libtiff-dev libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libc-bin gettext libfreetype6 libfreetype6-dev \
  libfribidi-dev libfribidi0 zlib1g zlib1g-dev libtag1-dev libcaca0 libslang2-dev libcaca-dev caca-utils  \
  libportaudio2 libupnp-dev libexpat1 libexpat1-dev yasm libxcb-xv0 libxcb-xv0-dev \
  libx11-xcb1 libx11-xcb-dev libswscale-dev lua5.2 libxcb-composite0-dev


######有一些很是重要的依賴關係,gettext:國際化支持;libdvbpsi是MPEG-TS支持;libmad:是MP3音頻解碼;libmpeg2:MPEG1和MPEG2視頻支持;ffmpeg或者libav(libavcodec,libavformat,libpostproc,libswscale,以及libavio)對MPEG4和大多數音頻和視頻解碼;liba52:杜比聲音;dvdread:用於dvd回放,live555回放rtsp流。對於音頻輸出,可能須要alsa-lib(linux),對於視頻輸出一般須要XCB、XVideo或者OPenGL/GLX。
######須要安裝這些庫來編譯VLC,在Debian/Ubuntu上,這些庫的包名通常以-dev結尾。若是所使用的linux發行版未提供這些庫,最好靜態編譯並連接到VLC.bootstrap

#-4   配置VLC
######./configure用於檢測系統是否可以編譯VLC,您還能夠選擇構建中的特性,使用./configure --help會列出各類構建選項windows

./configure


######對大多數用戶來講,./configure不須要任何命令行選項。
######默認狀況下會根據檢測到的可用庫自動選擇要編譯的特性。若是庫再也不默認目錄,也不在vlc源碼所在目錄,爲了./configure找到這些庫,須要使用PKG_CONFIG_PATH去指定這些庫的路徑
######有些特性在默認狀況下是禁用的,若是須要它們,則必須使用configure選項來強制編譯它們。您能夠在./configure --help中搜索disable來找到默認被禁用的特性列表。
######默認禁用選項:
###### --with-libfuzzer=DIR                                 從DIR指定目錄中使用libFuzzer庫
###### --enable-debug                                       使能運行時斷言即顯示日誌
###### --enable-gprof                                       使用gprof配置文件
###### --enable-cprof                                       使用cprof配置文件
###### --enable-coverage                                    構建測試版
###### --with-sanitizer=(address/memory/undefined/thread)   使用sanitizer構建
###### --enable-run-as-root                                 容許容許vlc時候使用root權限
###### --enable-wma-fixed                                   libwma-fixed,模塊
###### --enable-omxil                                       openmax il 編碼器魔抗
###### --enable-merge-ffmpeg                                合併FFmpeg-based插件
###### --enable-tremor                                      Tremor解碼支持
###### --enable-bpg                                         BPG支持
###### --enable-opensles                                    Android OpenSL ES audio module (default disabled)
###### --enable-minimal-macosx                              Mac OS X 最小化支持
###### --enable-lirc                                        lirc 支持
###### --enable-update-check                                檢測升級系統
######若是你想把VLC安裝在其餘目錄,可從https://wiki.videolan.org/Configure/ 獲取典型的configurebash

./configure --prefix=/path/to/install/folder/


#####擬採用https://wiki.videolan.org/Configure/推薦的linux GIT的示例配置
 ide

sudo ./configure PKG_CONFIG_PATH=/home/gy/Qt5.12.0/5.12.0/gcc_64/lib/pkgconfig --enable-x11 --enable-xvideo --disable-gtk --enable-sdl --enable-ffmpeg --with-ffmpeg-mp3lame --enable-mad --enable-libdvbpsi --enable-a52 --enable-dca --enable-libmpeg2 --enable-dvdnav --enable-faad --enable-vorbis --enable-ogg --enable-theora --enable-faac--enable-mkv --enable-freetype --enable-fribidi --enable-speex --enable-flac --enable-livedotcom --with-livedotcom-tree=/usr/lib/live --enable-caca --enable-skins --enable-skins2 --enable-alsa --disable-kde--enable-wxwindows   --enable-ncurses --enable-asa --enable-debug

報錯:
    configure: error:  No package 'xcb-xkb' found. Pass --disable-xcb to skip X11 support.
解決:工具

sudo apt-get install libxcb-xkb-dev


報錯:
     error: No package 'Qt5Svg' found.
解決:post

sudo apt-get install libxcb-xkb-dev

    報錯:
     configure: error: Could not find lua. Lua is needed for some interfaces (rc, telnet, http) as well as many other custom scripts. Use --disable-lua to ignore this error.
解決:開發工具

sudo apt-get install lua5.2-dev

報錯:
     configure: error: Could not find the LUA byte compiler.
解決:

sudo apt-get install lua5.2


#-5   編譯

make

錯誤:Making all in share
make[2]: 進入目錄「/home/gy/vlc/vlc/share」
  LUAC   lua/extensions/VLSub.luac
luac: lua/extensions/VLSub.lua:1100: unexpected symbol near `#'
解決:卸載lua50 從新安裝lua5.1以上版本便可

######你再也不須要去安裝vlc,能夠在vlc所在目錄直接在命令行中運行vlc
######若是想要去安裝vlc,則使用root權限安裝

sudo make install

######若是後來你想要卸載vlc,你可在保持構建樹不變的狀況下運行

sudo make uninstall

######刪除編譯產生的中間文件

sudo make clean
相關文章
相關標籤/搜索