s5p4418移植madplay,交叉编译

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mynameislinduan/article/details/86670957

时间: 2019.01.27
arm播放音乐软件移植,交叉编译madplay,移植madplay,
4418播放音乐,arm madplay arm. cross compile madplay for arm


1. 环境:

	主机: ubuntu 14.04 x64
	目标:s5p4418 linux kernnel 3.4.39
	编译器: arm-cortex_a9-eabi-4.7-eglibc-2.18
		
		时间: 2019.01.27
		地点:广东某搬砖城市
  • 目前madplay的官方网站是:
    http://www.underbit.com/products/mad/

  • 透过该网站的介绍可以得知, 它还需要zlib,libmad 和libid3tag这3个库, 从该网站找到下载连接

https://sourceforge.net/projects/mad/files/


2. 步骤

* 搭建交叉编译环境,这里不在叙述,网上太多太多资料了。

搭建好交叉编译环境之后,需要编译4个库,都需要交叉编译:

  • zlib-1.2.3.tar.gz

  • libid3tag-0.15.1b.tar.gz

  • libmad-0.15.1b.tar.gz

  • madplay-0.15.2b.tar.gz

注意版本,一定要对应版本,zlib可以1.2.3版本以上的,其他3个库必须对应上述版本。下面的步骤中,编译出来的库都是相互依赖的,configure的时候, prefix(按照路径)的目的自己要先想好,而且拷贝到开发板的时候,也要和你的安装路径一致。


a. 交叉编译zlib

#tar zxf zlib-1.2.5.tar.gz
#cd zlib-1.2.5
#./configure --prefix=/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/zlib_arm_bin

Zlib配置是不支持–host项,而且,交叉编译时需要手动更改Makefile,将Makfile里的gcc、ar、ranlib均加上前缀arm-cortex_a9-eabi-4.7-xxxx-xxx(看个人的编译器而言),再执行make && make install,编译安装成功后在–prefix指定的目录下生成include、shared和lib目录

b. 交叉编译 libid3tag

PATH=/opt_WQ/arm-cortex_a9-eabi-4.7-eglibc-2.18/bin:$PATH
CPPFLAGS=-I/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/zlib_arm_bin/include
LDFLAGS=-L/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/zlib_arm_bin/lib
./configure --host=arm-cortex_a9-linux-gnueabi --prefix=/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/libid3tag_bin_arm --disable-shared

c. 交叉编译 libmad

./configure --host=arm-cortex_a9-linux-gnueabi --prefix=/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/libmad_bin_arm --disable-shared

这里有可能出错,我出错:: error: unrecognized command line option ‘-fforce-mem’

解决方法:

	找到相关Makefile 
	编辑器打开,我们需呀修改Makfile,例如: vi Makefile 
	找到包含”-fforce-mem”字符串,将其删除

再次编译,即可通过:

make && make install

d. 交叉编译 madplayer

只要上面的库交叉编译过了,版本对了,下面编译会很顺利,不会报错。

export LDFLAGS="-L/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/zlib_arm_bin/lib -L/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/libid3tag_bin_arm/lib  -L/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/libmad_bin_arm/lib"
export CPPFLAGS="-I/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/zlib_arm_bin/include -I/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/libid3tag_bin_arm/include  -I/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/libmad_bin_arm/include"

./configure --host=arm-cortex_a9-linux-gnueabi --prefix=/home_WQ/linux4418/eglfs_qt4.8/3rd_libs/madplay_bin --disable-shared --enable-static 
make
make install

猜你喜欢

转载自blog.csdn.net/mynameislinduan/article/details/86670957