linux 编译libvlc,libvlc-源码编译流程记录

一、 安装编译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

有一些非常重要的依赖关系如下:

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.

四、配置VLC

./configure用于检测系统是否能够编译VLC,您还可以选择构建中的特性,使用./configure --help会列出各种构建选项

./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/ 获取典型的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以上版本即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值