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

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


若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

在CentOS下编译VLC源码相关推荐

  1. 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码

    前言 公司项目中使用的libvlcjni.so库文件,有点老,对Android 6.0+系统兼容性太差了,当程序运行在Android6.0+系统上时,回弹出警告框,提示libvlcjni.so:tex ...

  2. mac下编译安卓源码

    资源 Mac OS10.12 编译Android源码8.1 aosp编译-需翻墙 Mac下编译安卓源码 手把手教你在Mac OS下载.编译及导入Android源码 步骤 准备 磁盘空间大于180G 安 ...

  3. WINDOWS 下编译 ffmpeg 源码总结

    WINDOWS 下编译 ffmpeg 源码,有两种方式:VC.GCC 1.VC 编译:   https://github.com/ShiftMediaProject/FFVS-Project-Gene ...

  4. win7下编译python源码

    win7下编译python源码 下载源码: 打开网页:https://www.python.org/downloads/release/python-2710/ 下载完成后解压即可 查看文档: 其实最 ...

  5. Win7下编译mosquitto源码

    在windows下编译mosquitto源码使用的工具包括: 1.visual studio 2010(用vs .net 2003的编译器时cmake会提示未识别的c或c++编译器) 2.cmake ...

  6. android .9编译,在Ubuntu 9.04下编译Android源码

    一直都是刷官方的版本,准备自己编译一下刷机. 首先是下载,Android的源码是托管在Linux Kernel的源码站点,所以版本工具是git.关于git的使用和安装请见我的另一篇文章<在Ubu ...

  7. idea下编译mybatis源码

    前段时间笔者在专心研究Netty源码,Netty源码研究已经告一段落了.接下来就是开启我们的Mybaits源码的征程.首先我们要开始编译Mybatis源码. 下载源码 我们先去的GitHub上面找到对 ...

  8. windows下编译pcl-master源码(带GPU)

    参考博客 1.http://pointclouds.org/documentation/tutorials/compiling_pcl_windows.php#compiling-pcl-window ...

  9. mysql windows编译_Windows平台下编译Mysql源码 | 学步园

    最近由于项目的关系,需要使用到Mysql数据库,而我的工作任务与数据库有很大的关系,所以,决定好好学学Mysql,同时,也把Mysql的源码下载了,希望能有利于对它的学习.这里记录一下windows平 ...

最新文章

  1. HDU 1431 素数回文
  2. 浏览器事件监听的方法
  3. 最全面的JavaScript调试技巧总结
  4. pip安装 tensorflow-gpu 提示Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问
  5. 消息映射的服务器的设计与实现
  6. 【文末赠书】价值百万大奖的幸运质数
  7. 函数运行 形参实参变化 内存空间_可能python创始人都不知道的,python函数实参形参讲解...
  8. 量化风控学习:原来评分卡模型的概率是这么校准的!
  9. python 下载图片到内存卡_python-23:将图片下载到本地
  10. java ajaxupload_Java中利用ajaxfileupload.js组件实现文件的上传功能
  11. MySQL开启日志记录执行过的SQL语句
  12. 文件压缩(C#代码)
  13. JVM内存结构和Java内存模型别再傻傻分不清了
  14. 红米note3 android go,免解锁刷机全教程:红米 NOTE3 全网通 开吃棉花糖
  15. cucumber rest assured做接口测试
  16. 研发面试问题回答技巧
  17. DC-DC升压IC测试及EN脚讲解
  18. 中国5G毫米波小基站市场行业运行动态与发展趋势预测报告
  19. uni-app - Refused to display ‘xxx‘ in a frame because an ancestor violates the following Content Sec
  20. 干货 | 这可能是最详细的「阻抗匹配」介绍

热门文章

  1. mysql 并行执行sql_MySQL8.0 InnoDB并行执行
  2. 探索性测试 VS 精益测试
  3. 未能加载文件或程序集一例
  4. (十七)WebP 的测试与使用
  5. 利用JAVA解决鸡兔同笼的问题
  6. SaltStack之lamt架构状态文件(下)
  7. web api 、webservice 跨域等
  8. 金仓数据库 KingbaseES 插件参考手册 plsql_plprofiler
  9. 计算机组成原理系统总线概念,计算机组成原理-系统总线
  10. JavaScript:限时秒杀