madplayr在s3c2410+linux的移植
--Figo 2008.12.9
交叉编译器版本:arm-linux 3.4.1
硬件平台:s3c2410
软件平台:linux-2.6.27
1.编译zlib
下载源代码包:http://download.chinaunix.net/download/0013000/12241.shtml。解压进入源码包目录下输入以下命令:
./configure --prefix=/usr/local/arm/3.4.1/arm-linux。
再修改(不能跟上面的步骤调转)makefile文件:
CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
AR=/usr/local/arm/3.4.1/bin/arm-linux-ar rcs
RANLIB=/usr/local/arm/3.4.1/bin/arm-linux-ranlib
make ,make install ,编译好之后就可以在上面prefix指定的目录下的lib目录下找到libz.a这个库。
2. 编译libid3tag
下载源代码包:http://download.chinaunix.net/download/0006000/5881.shtml。解压进入源码包目录下输入以下命令:
./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --prefix=/usr/local/arm/3.4.1/arm-linux --host=arm-linux --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib
其中,--disable-shared --enable-static是指定为静态编译。不过我发现这样并不能够进行编译。至于如何进行表态编译,我将在下面中进行介绍。
make, make install
3. 编译libmad
下载源代码包:http://download.chinaunix.net/download/0006000/5910.shtml。解压进入源码包目录下输入以下命令:
./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --prefix=/usr/local/arm/3.4.1/arm-linux --host=arm-linux --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib
然后,make ,make install
4. 编译madplay
下载源代码包:http://download.chinaunix.net/download/0007000/6440.shtml 。解压进入源码包目录下输入以下命令:
./configure CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc --prefix=/usr/local/arm/3.4.1/arm-linux --host=arm-linux --disable-debugging --disable-shared --enable-static CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib
然后,make ,make install
但是编译后的结果是动态链接的,为了减少麻烦可以在这个基础上继续输入以下命令来实现静态链接:
/usr/local/arm/3.4.1/bin/arm-linux-gcc -Wall -O2 -fomit-frame-pointer -o madplay madplay.o getopt.o getopt1.o version.o resample.o filter.o tag.o crc.o rgain.o player.o audio.o audio_aiff.o audio_cdda.o audio_hex.o audio_null.o audio_raw.o audio_snd.o audio_wave.o audio_oss.o -L/usr/local/arm/3.4.1/arm-linux/lib /usr/local/arm/3.4.1/arm-linux/lib/libmad.a /usr/local/arm/3.4.1/arm-linux/lib/libid3tag.a -lz -lm –static
(本文内容大多数来源于 《linux-2.6.14下madplay在S3C2410上移植的全过程详解》一文,在此表示对该文作者的感谢)