在CentOS下编译VLC源码
在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 nvlcTo 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
若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!
同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。
在CentOS下编译VLC源码相关推荐
- 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码
前言 公司项目中使用的libvlcjni.so库文件,有点老,对Android 6.0+系统兼容性太差了,当程序运行在Android6.0+系统上时,回弹出警告框,提示libvlcjni.so:tex ...
- mac下编译安卓源码
资源 Mac OS10.12 编译Android源码8.1 aosp编译-需翻墙 Mac下编译安卓源码 手把手教你在Mac OS下载.编译及导入Android源码 步骤 准备 磁盘空间大于180G 安 ...
- WINDOWS 下编译 ffmpeg 源码总结
WINDOWS 下编译 ffmpeg 源码,有两种方式:VC.GCC 1.VC 编译: https://github.com/ShiftMediaProject/FFVS-Project-Gene ...
- win7下编译python源码
win7下编译python源码 下载源码: 打开网页:https://www.python.org/downloads/release/python-2710/ 下载完成后解压即可 查看文档: 其实最 ...
- Win7下编译mosquitto源码
在windows下编译mosquitto源码使用的工具包括: 1.visual studio 2010(用vs .net 2003的编译器时cmake会提示未识别的c或c++编译器) 2.cmake ...
- android .9编译,在Ubuntu 9.04下编译Android源码
一直都是刷官方的版本,准备自己编译一下刷机. 首先是下载,Android的源码是托管在Linux Kernel的源码站点,所以版本工具是git.关于git的使用和安装请见我的另一篇文章<在Ubu ...
- idea下编译mybatis源码
前段时间笔者在专心研究Netty源码,Netty源码研究已经告一段落了.接下来就是开启我们的Mybaits源码的征程.首先我们要开始编译Mybatis源码. 下载源码 我们先去的GitHub上面找到对 ...
- windows下编译pcl-master源码(带GPU)
参考博客 1.http://pointclouds.org/documentation/tutorials/compiling_pcl_windows.php#compiling-pcl-window ...
- mysql windows编译_Windows平台下编译Mysql源码 | 学步园
最近由于项目的关系,需要使用到Mysql数据库,而我的工作任务与数据库有很大的关系,所以,决定好好学学Mysql,同时,也把Mysql的源码下载了,希望能有利于对它的学习.这里记录一下windows平 ...
最新文章
- HDU 1431 素数回文
- 浏览器事件监听的方法
- 最全面的JavaScript调试技巧总结
- pip安装 tensorflow-gpu 提示Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问
- 消息映射的服务器的设计与实现
- 【文末赠书】价值百万大奖的幸运质数
- 函数运行 形参实参变化 内存空间_可能python创始人都不知道的,python函数实参形参讲解...
- 量化风控学习:原来评分卡模型的概率是这么校准的!
- python 下载图片到内存卡_python-23:将图片下载到本地
- java ajaxupload_Java中利用ajaxfileupload.js组件实现文件的上传功能
- MySQL开启日志记录执行过的SQL语句
- 文件压缩(C#代码)
- JVM内存结构和Java内存模型别再傻傻分不清了
- 红米note3 android go,免解锁刷机全教程:红米 NOTE3 全网通 开吃棉花糖
- cucumber rest assured做接口测试
- 研发面试问题回答技巧
- DC-DC升压IC测试及EN脚讲解
- 中国5G毫米波小基站市场行业运行动态与发展趋势预测报告
- uni-app - Refused to display ‘xxx‘ in a frame because an ancestor violates the following Content Sec
- 干货 | 这可能是最详细的「阻抗匹配」介绍