在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

相关文章

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

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++