在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个,如下:

vlc android编译选项 vlc源码编译_CentOS

另外,还依赖于/usr/local/lib/vlc/plugins目录下的插件。

建议打包时,直接拷贝plugins目录,并按/usr/local/lib下的相对目录结构组织,即vlc目录与so同一级,plugins目录放在vlc目录下。

3、头文件

VLC头文件位于/usr/local/include。

vlc android编译选项 vlc源码编译_CentOS_02

三、报错解决

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,步骤如下。

下载ysamwget 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

下载ffmpegwget 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