在Linux普通用户上安装madplayer过程及遇到的问题解决方法:
安装过程:
0.准备工作
创建madplay编译目录:
mkdir -p /madplay/target
cd /madplay/target
用rz命令将ftp中zlib-1.1.4.tar.gz, madplay-0.15.2b.tar.gz,libmad-0.15.1b.tar.gz,libid3tag-0.15.1b.tar.gz四个源码包上传到/madplay/target目录。
1. 安装压缩库zlib
解压zlib-1.1.4.tar.gz源码包,并cd 进入zlib-1.1.4源码包目录
配置:
./configure--prefix=/madplay/target/
编译并安装:
make && make install
2.安装ID3标签编辑库 libid3tag
libid3tag库在使用的时候会自动连接zlib库,所以在编译的时候就需要显式的指定zlib库的连接位置。
libid3tag-0.15.1b库需要依赖1.1.4及以上版本的zlib库,所以安装的先后次序不能颠倒。
一些参数的说明:
--disable-debugging do not compile with debugging support,and use more optimizations
--disable-shared do not build a shared library Bydefault the package will build a shared library if possible for your platform.If you want only a static library, use --disable-shared.
解压libid3tag-0.15.1b.tar.gz源码包,并cd 进入libid3tag-0.15.1b源码包目录。
配置libid3tag:
CPPFLAGS=-I/madplay/target/includeLDFLAGS=-L/madplay/target/lib ./configure --enable-static --disable-shared--disable-debugging --prefix=/madplay/target/
编译并安装:
make && make install
3.安装MPEG音频解码库libmad(支持.mp1, .mp2, .mp3解码)
解压libmad-0.15.1b.tar.gz源码包,并cd 进入libmad-0.15.1b源码包目录。
配置:
CFLAGES=-I/madplay/target/includeLDFLAGS=-L/madplay/target/lib ./configure --disable-debugging --enable-static--disable-shared --prefix=/madplay/target/
编译并安装:
make && make install
4.安装播放器madplay
解压madplay-0.15.2b.tar.gz源码包,并cd 进入madplay-0.15.2b源码包目录。
配置:
CPPFLAGS=-I/madplay/target/includeLDFLAGS=-L/madplay/target/lib ./configure --enable-static --disable-shared--disable-debugging --without-esd --prefix=/root/madplay/madplay-0.15.2b/target
编译madplay:
make
此时,madplay程序就已经生成了,用file命令查看可知是静态编译好的程序。
5.测试运行
用rz命令将windows上的某首mp3歌曲上传至linux系统中,
如“洪雨雷-留下.mp3”
运行
./madplay洪雨雷-留下.mp3
检查播放情况。
问题解决方法:
1. 在普通用户上无法创建/madplay/target目录
解决方法:
在命令前加sudo
2. 修改普通用户密码:
① 忘记密码的情况下:
在root上使用:passwd [用户名]
注释:很多情况下会有这个密码过于简单这类的提示,不用管它,它依然会让你更新密码成功的,但这个密码不一定可以解决你所遇到的问题。于是你可以到普通用户上接着修改,至到成功为止。
②记得密码的情况下:
在普通用户上使用:passwd
3. 用户不在sudoers文件中的解决方法
①切换到root用户权限,查看/etc/sudoers文件权限,如果只读权限,修改为可写权限
查看权限命令条:ls -l /etc/sudoers
修改权限命令条:chmod 777 /etc/sudoers
②编辑/etc/sudoers文件
编辑命令条:vi /etc/sudoers
在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:
root ALL=(ALL) ALL
user ALL=(ALL) ALL
保存退出,并恢复/etc/sudoers的访问权限为440
4. 安装libmad出现版本错误
解决方法:
你打开根目录下的Makefile并去掉里面出现的"-fforce-mem"就可以了(原因:你用的gcc版本过高,此版本的gcc没有"-fforce-mem"参数)。
5. linux下的madplay播放器,编译执行后出现audio: /dev/dsp: 没有那个文件或目录
解决方法:
在当前目录下依次使用以下两条命令:
① mknod /dev/dsp c 14 3
②chmod 666 /dev/dsp