在CentOS下编译VLC源码

2024-06-18 05:18
文章标签 编译 源码 centos vlc

本文主要是介绍在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,步骤如下。

下载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源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071399

相关文章

Java编译错误java.lang.NoSuchFieldError的解决方案详析

《Java编译错误java.lang.NoSuchFieldError的解决方案详析》java.lang.NoSuchFieldError是Java中的一种运行时错误,:本文主要介绍Java编译错... 目录前言解决方案1. 统一JDK版本环境2. 优化maven-compiler-plugin配置3. 清

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

java 恺撒加密/解密实现原理(附带源码)

《java恺撒加密/解密实现原理(附带源码)》本文介绍Java实现恺撒加密与解密,通过固定位移量对字母进行循环替换,保留大小写及非字母字符,由于其实现简单、易于理解,恺撒加密常被用作学习加密算法的入... 目录Java 恺撒加密/解密实现1. 项目背景与介绍2. 相关知识2.1 恺撒加密算法原理2.2 Ja

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

CentOS 7 YUM源配置错误的解决方法

《CentOS7YUM源配置错误的解决方法》在使用虚拟机安装CentOS7系统时,我们可能会遇到YUM源配置错误的问题,导致无法正常下载软件包,为了解决这个问题,我们可以替换YUM源... 目录一、备份原有的 YUM 源配置文件二、选择并配置新的 YUM 源三、清理旧的缓存并重建新的缓存四、验证 YUM 源

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3