在CentOS下编译VLC源码
- 一、下载VLC源码
- 二、VLC编译与安装
- 1、编译与安装
- 2、库文件
- 3、头文件
- 三、报错解决
- 1、configure: error: Could not find lua. Lua is needed for some interfaces
- 2、configure: error: Could not find libmad on your system
- 3、configure: error: No package 'libavcodec' found
- 4、configure: error: Could not find liba52 on your system
- 5、configure: error: No package 'alsa' found
- 6、configure: error: libgcrypt version 1.1.94 or higher not found
VLC官网:https://www.videolan.org/
VLC Github:https://github.com/videolan/vlc
测试环境:CentOS 7.3.1611 64位系统
一、下载VLC源码
下载地址:http://download.videolan.org/pub/videolan/vlc/2.2.4/vlc-2.2.4.tar.xz
二、VLC编译与安装
1、编译与安装
解压VLC压缩包,注意J为大写
tar -xvJf vlc-2.2.4.tar.xz
进入VLC源码目录
cd vlc-2.2.4
进行配置,先执行
./bootstrap
再执行
./configure
在执行此命令过程中,会报错特别多。参考第三章,进行解决之后继续。./configure执行成功,效果如下:
libvlc configuration
--------------------
version : 2.2.4
system : linux
architecture : x86_64 mmx sse sse2
optimizations : yes
vlc aliases : cvlc rvlc nvlc
To build vlc and its plugins, type `make', or `./compile' if you like nice colors.
编译
make
安装
sudo make install
编译安装后,即可在/usr/local/lib和/usr/local/include看到库和头文件。
2、库文件
VLC库文件位于/usr/local/lib。
我们程序调用VLC库运行时,依赖的so有libvlc.so、libvlc.so.5、libvlc.so.5.5.0、libvlccore.so、libvlccore.so.8、libvlccore.so.8.0.0共6个,如下:
另外,还依赖于/usr/local/lib/vlc/plugins目录下的插件。
建议打包时,直接拷贝plugins目录,并按/usr/local/lib下的相对目录结构组织,即vlc目录与so同一级,plugins目录放在vlc目录下。
3、头文件
VLC头文件位于/usr/local/include。
三、报错解决
1、configure: error: Could not find lua. Lua is needed for some interfaces
原因:找不到lua相关的包
解决办法:安装lua-devel,yum install lua-devel
2、configure: error: Could not find libmad on your system
原因:缺少libmad包
解决办法:安装libmad,步骤如下。
下载libmad,wget ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz
解压,tar -xzvf libmad-0.15.1b.tar.gz
进入目录,cd libmad-0.15.1b
配置,./configure
编译,make
报错:gcc: error: unrecognized command line option ‘-fforce-mem’
解决:打开源码目录下的Makefile文件,找到关键的一行(应该是129),
CFLAGS = -Wall -g -O -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2
将-fforce-mem删除即可,重新make。
安装,make install
3、configure: error: No package ‘libavcodec’ found
原因:缺少libavcodec包
解决办法:安装ysam、ffmpeg,步骤如下。
下载ysam,wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
解压,tar zxvf yasm-1.3.0.tar.gz
进入目录,cd yasm-1.3.0
配置,./configure
编译,make
安装,make install
下载ffmpeg,wget http://ffmpeg.mplayerhq.hu/releases/ffmpeg-1.2.tar.gz
解压,tar zxvf ffmpeg-1.2.tar.gz
进入目录,cd ffmpeg-1.2
配置生成动态库,CFLAGS=-fPIC ./configure --enable-shared --enable-gpl --enable-nonfree
编译,make
安装,make install
添加环境变量
打开文件,gedit ~/.bashrc
文件末尾添加:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
保存,关闭文件,使生效,source ~/.bashrc
4、configure: error: Could not find liba52 on your system
原因:缺少liba52包
解决办法:安装liba52,步骤如下。
下载liba52,wget http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz
解压,tar zxvf a52dec-0.7.4.tar.gz
进入目录,cd a52dec-0.7.4
配置生成动态库,CFLAGS=-fPIC ./configure --enable-shared
编译,make
安装,make install
5、configure: error: No package ‘alsa’ found
原因:缺少alsa包
解决办法:安装alsa,yum install alsa-lib-devel.x86_64
6、configure: error: libgcrypt version 1.1.94 or higher not found
原因:缺少libgcrypt包
解决办法:安装libgcrypt,yum install libgcrypt-devel.x86_64