一、 安装编译vlc的必要工具
VLC需要C11编译器以及开发工具链,建议使用高于4.9版本的gcc,另外clang/LLVM也是可以的。如果你是从git仓库构建,你还需要gnu构建系统即 autotools(autoconf,automake,libtol,gettext)来设置Makefile.并确保这些工具是最新且可用
sudo apt-get install git build-essential pkg-config libtool automake autopoint gettext flex bison
二、获取vlc源码
可以使用ftp获取官方发布的正式版本,也可以使用git获取。如果使用的git开发版本,首先需要引导源代码树,如果autotool过时或者丢失 ./bootstrap会失败
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
三、 获取,安装第三方库
现在可以配置VLC了,但是必须先确保所有的依赖关系都已经安装就绪。必须安装并启用所需的所有第三方库。如果未能安装所需的库,则可能导致vlc应用程序出现错误。完整的第三方库列表可以从https://wiki.videolan.org/Contrib_Status/获取
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
有一些非常重要的依赖关系如下:
需要安装这些库来编译VLC,在Debian/Ubuntu上,这些库的包名一般以-dev结尾。如果所使用的linux发行版未提供这些库,最好静态编译并链接到VLC.
四、配置VLC
./configure用于检测系统是否能够编译VLC,您还可以选择构建中的特性,使用./configure --help会列出各种构建选项
./configure
对大多数用户来说,./configure不需要任何命令行选项。默认情况下会根据检测到的可用库自动选择要编译的特性。如果库不再默认目录,也不在vlc源码所在目录,为了./configure找到这些库,需要使用PKG_CONFIG_PATH去指定这些库的路径。
有些特性在默认情况下是禁用的,如果需要它们,则必须使用configure选项来强制编译它们。您可以在./configure --help中搜索disable来找到默认被禁用的特性列表。
默认禁用选项:
如果你想把VLC安装在其他目录,可从https://wiki.videolan.org/Configure/ 获取典型的configure
./configure --prefix=/path/to/install/folder/
拟采用https://wiki.videolan.org/Configure/推荐的linux GIT的示例配置
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.
#解决:
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
五、编译 安装
#编译
make
#安装 如果不需要安装vlc,可以在vlc所在目录直接在命令行中运行vlc
sudo make install
#如果后来你想要卸载vlc,你可在保持构建树不变的情况下运行
sudo make uninstall
######删除编译产生的中间文件
sudo make clean
编译安装过程中出现的问题:
错误: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以上版本即可