Linux中madplay 音乐播放器移植步骤

简介:


                                                           madplay 音乐播放器移植步骤
madplay版本:
madplay-0.15.2
交叉编译器版本:
arm-linux-gcc 3.4.1
操作系统平台:
Linux -- Red Hat 9.0
开发板平台:
Arm -- FL2440
准备源码包:
下面给出了两个网站,分别是madplay和zlib库的源码网址
madplay:http://sourceforge.net/projects/mad/files/
zlib库 :http://www.zlib.net/
madplay-0.15.2b.tar.gz libmad-0.15.1b.tar.gz,libid3tag-0.15.1b.tar.gz zlib-1.1.4.tar.gz
建立两个文件夹,一个存放源码,一个存放安装文件
在home下,mkdir两个文件夹:madplay-src madplay
依次解压四个源码包到madplay-src目录下: tar xzvf XXXXXXXXX


1. 编译zlib-1.1.4
首先配置configure 文件
#./configure --prefix=/home/madplay
修改Makefile
CC=arm-linux-gcc
AR=arm-linux-ar rc
RANLIB=arm-linux-ranlib
#make
#make install


2. 编译libid3tag
#./configure CC=arm-linux-gcc --host=arm-linux --prefix=/home/madplay 
CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib
2
#make
#make install
3. 编译libmad
#./configure CC=arm-linux-gcc --host=arm-linux --prefix=/home/madplay 
CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib
#make
#make install
4. 编译madplay
#./configure CC=arm-linux-gcc --host=arm-linux --prefix=/home/madplay 
CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib
#make

到这就结束了,可以不用make install
在madplay-0.15.2b目录下生成madplay的可执行文件,查看一下需要的动态库
#arm-linux-readelf -d madplay
输出运行时所需的动态库:libmad.so.0, libid3tag.so.0, libm.so.6,libc.so.6
将后两个文件从lib拷贝到根文件系统的/usr/lib目录下(先查看,如果已经有了则不需要),
前两个文件是在/madplay/lib/下生成的,把这两个文件也拷贝到/usr/lib下。
将madplay复制到根文件系统/usr/bin目录下,将一个MP3文件也放在某一目录下,在开发板上执行madplay程序
#madplay XXX.mp3
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
s3c2410-uda1341-superlp: audio_set_dsp_speed:44100 prescaler:66
Title: XX
Artist: XXX
Album: XXXX
Track: XX
3
Comment: XXXXXXXXX
s3c2410-uda1341-superlp: audio_set_dsp_speed:44100 prescaler:66
如果出现这个信息,应该就没有问题了,可以听歌了。
madplay还有一些快捷键,比如:增大/减小音量(+/-),暂停(b),停止(ESC),其他的操作可以查看madplay的源码。
5. 静态编译
以上是用动态编译的方法,程序运行时需依赖动态库文件。也可以采用静态编译的方法,将静态库编译到程序中,运行时不需要动态库文件
在配置libid3tag,libmad,madplay时,加上参数“--disable-shared --enable-static”即可静态编译madplay

编译完成后只需将madplay复制到根文件系统/usr/bin目录下,不需要复制动态库。


目录
相关文章
|
4月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
171 4
|
6月前
|
NoSQL Linux Redis
linux安装单机版redis详细步骤,及python连接redis案例
这篇文章提供了在Linux系统中安装单机版Redis的详细步骤,并展示了如何配置Redis为systemctl启动,以及使用Python连接Redis进行数据操作的案例。
121 3
|
5月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
176 0
|
7月前
|
Ubuntu Linux 开发工具
【事件中心 Azure Event Hub】在Linux环境中(Ubuntu)安装Logstash的简易步骤及配置连接到Event Hub
【事件中心 Azure Event Hub】在Linux环境中(Ubuntu)安装Logstash的简易步骤及配置连接到Event Hub
|
7月前
|
存储 监控 Ubuntu
在Linux中,如何规划⼀台 Linux 主机,步骤是怎样?
在Linux中,如何规划⼀台 Linux 主机,步骤是怎样?
|
7月前
|
JavaScript Linux API
【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤
【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤
|
7月前
|
Ubuntu 安全 Linux
在Linux中,编译内核的意义与步骤?
在Linux中,编译内核的意义与步骤?
|
7月前
|
Linux 网络安全 数据安全/隐私保护
在Linux中,ptables是否支持time时间控制用户行为,如有请写出具体操作步骤。
在Linux中,ptables是否支持time时间控制用户行为,如有请写出具体操作步骤。
|
7月前
|
运维 监控 Java
在Linux中,当遇到系统卡顿时,你会采取哪些步骤来定位原因?
在Linux中,当遇到系统卡顿时,你会采取哪些步骤来定位原因?
|
7月前
|
Oracle Java 关系型数据库
简单记录在Linux上安装JDK环境的步骤,以及解决运行Java程序时出现Error Could not find or load main class XXX问题
本文记录了在Linux系统上安装JDK环境的步骤,并提供了解决运行Java程序时出现的"Error Could not find or load main class XXX"问题的方案,主要是通过重新配置和刷新JDK环境变量来解决。
219 0