一、环境和软件介绍

1、主机环境:Ubuntu16.04

2、交叉编译器: gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)

3、ARM板:kernel:2.6.35,SoC:S5PV210

4、软件包: zlib-1.2.3 、 libid3tag-0.15.1b.tar.gz 、 libmad-0.15.1b.tar.gz 、 madplay-0.15.2b.tar.gz,后三个获取链接:https://sourceforge.net/projects/mad/files/

二、移植以上几个库

1、交叉编译zlib-1.2.3

这个不细说,原因:我自己以前移植过了,在系统里存有编译好的zlib库文件,这百度也可以找到移植的方法

2、交叉编译libid3tag-0.15.1b.tar.gz(这个编译要依赖zlib的库)

(1)解压:

tar -xvf libid3tag-0.15.1b.tar.gz

(2)配置:

cd libid3tag-0.15.1b/
./configure --host=arm-linux CC=arm-linux-gcc --enable-static --disable-shared --disable-debugging --prefix=/root/madplay_installed CPPFLAGS=-I/root/dir_lib/include LDFLAGS=-L/root/dir_lib/lib

注意:

CC=arm-linux-gcc这选项是指定编译工具链。但是这前提是我已经为我的工具链创建了arm-linux-xxx这样的符号链接,并且将路径导出到了PATH

--prefix=/root/madplay_installed这个指定的是我自定义的libid3tag-0.15.1b的安装目录

CPPFLAGS=-I/root/dir_lib/include LDFLAGS=-L/root/dir_lib/lib,这是我这里特例,这是我指定的我之前编译好了的zlib的头文件和库的路径。

在./configure配置完了后,一定要看打印出来的信息,或者查看配置生成的Makefile,看看是否配置使用自己的交叉编译工具链

(3)编译并安装:

make -j4
make install

3、交叉编译 libmad-0.15.1b.tar.gz

(1)解压:

tar -xvf libmad-0.15.1b.tar.gz

(2)配置:

cd libmad-0.15.1b/
./configure --host=arm-linux --enable-static --disable-shared -disable-debugging --prefix=/root/madplay_installed

注意:

--host=arm-linux这选项是指定编译工具链。但是这前提是我已经为我的工具链创建了arm-linux-xxx这样的符号链接,并且将路径导出到了PATH

--prefix=/root/madplay_installed这个指定的是我自定义的 libmad-0.15.1b的安装目录

在./configure配置完了后,一定要看打印出来的信息,或者查看配置生成的Makefile,看看是否配置使用自己的交叉编译工具链

(3)编译:

make -j4

出错:

这是因为编译工具链的版本过高导致的,高版本的 gcc 没有 "-fforce-mem" 参数,解决的办法是在 Makefile 里面查找 "-fforce-mem" ,将其删除即可 make 通过。

(4)安装

make install

4、交叉编译madplay-0.15.2b.tar.gz

(1)解压:

tar -xvf madplay-0.15.2b.tar.gz

(2)配置:

cd ~/madplay-0.15.2b/
./configure CC=arm-linux-gcc --host=arm-linux --enable-static --disable-shared --disable-debugging --prefix=/root/madplay_installed CPPFLAGS=-I/root/madplay_installed/include LDFLAGS=-L/root/madplay_installed/lib

注意:

CC=arm-linux-gcc:这选项是指定编译工具链。但是这前提是我已经为我的工具链创建了arm-linux-xxx这样的符号链接,并且将路径导出到了PATH

--prefix=/root/madplay_installed:这个指定的是我自定义的madplay-0.15.2b的安装目录

CPPFLAGS=-I/root/madplay_installed/include:指定libmad-0.15.1b的头文件安装目录

LDFLAGS=-L/root/madplay_installed/lib:指定libmad-0.15.1b的库文件安装目录

在./configure配置完了后,一定要看打印出来的信息,或者查看配置生成的Makefile,看看是否配置使用自己的交叉编译工具链

(3)编译:

make -j4

出错:

但是在./configure配置时,已经指定了libmad-0.15.1b的头文件和库文件的安装目录,没搞懂为什么,然后后来想到libmad-0.15.1b的库依赖与zlib的库,所以就索性把zlib编译后得到的头文件和库文件都拷贝一份到/root/madplay_installed下的相应子文件夹中,然后再次编译,就通过了。

(4)安装

make install

我们最终需要的就是madplay这个可执行程序,把它移植到ARM板,可以通过./madplay xxx(xxx为mp3格式的音乐)来测试。

移植madplay到ARM板的更多相关文章

  1. Madplay移植到mini2440开发板【转】

    本文转载自:https://blog.csdn.net/simanstar/article/details/24035379 madplay交叉编译 交叉编译器:arm-linux-gcc 3.4.1 ...

  2. ARM板移植udev-126

    下载udev-126.tar.xz 下载的网址为: https://mirrors.edge.kernel.org/pub/linux/utils/kernel/hotplug/ 解压文件并且编译 # ...

  3. SQL数据库移植到ARM板步骤

    SQL作为一种存储数据的数据结构,具有体积小(能堵存储的数据多),容易移植等优点.例如,在Ubuntu或者ARM开发板上被大量应用.下面就简单说一下SQL移植到ARM板的步骤. 下载源代码 (记得在家 ...

  4. 移植seetafaceengine-master、opencv到ARM板

    0.前言 在要移植opecv和SeetaFaceEngine-master到ARM板子上运行的所有步骤之前,有几点需要注意的: 查看板子运行的Kernel版本 交叉编译工具链的gcc版本,关键就是工具 ...

  5. OK6410移植madplay播放器,王明学learn

    对于ok6410的madplay移植主要包括三部分.声卡驱动移植,播放器的移植,以及alsa库的移植. 一.首先移植声卡驱动以及播放器 ok6410采用WM97系列的声卡芯片,要使得内核支持该驱动,首 ...

  6. 移植madplay到jz2440【学习笔记】

    平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 交叉编译工具:arm-linux-gcc (GCC) 3.4.5 PC环境:ubuntu16.04 一.移植ma ...

  7. linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)

    linux 3.4.103 内核移植到 S3C6410 开发板 这个星期差点儿就搭在这里面了,一開始感觉非常不值得,移植这样的浪费时间的事情.想立刻搞定,然后安安静静看书 & coding. ...

  8. 编译在arm板上使用的sqlite3的静动态库

    采用的是sqlite-autoconf-3080002.tar.gz 解压 tar xvf sqlite-autoconf-3080002.tar.gz 进入 cd sqlite-autoconf-3 ...

  9. 【原创】车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程

    [原创]车载实时路况信息接收终端移植于Smart210开发板 --- 综合教程 所用工具: windows电脑 Ubuntu12.04 Smart210开发板 4g以上SD卡 U盘 步骤: 1.    ...

随机推荐

  1. CISP-PTE学习记录-大纲(1)

    大纲内容记录 Linux操作系统安全 Windows操作系统安全 数据库安全 Web安全基础 HHTP协议 注入漏洞 XSS漏洞 请求伪造 文件处理漏洞 访问控制漏洞 会话管理漏洞 实战练习 中间件 ...

  2. LeetCode46 回溯算法求全排列,这次是真全排列

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode的26篇文章,我们来实战一下全排列问题. 在之前的文章当中,我们讲过八皇后.回溯法,也提到了全排列,但是毕竟没有真正写 ...

  3. 通过pip控制台查看已安装第三方库版本及最新版本

    首先执行[pip --help]查看pip命令: 由Commands知:[pip list]命令查看已安装第三方库,另[pip list --outdated]可查看有新版本的第三方库.

  4. 牛客挑战赛38 (A - D)

    A - 多边形与圆 题目链接 题意 给出一个多边形的坐标和圆的半径, 多边形可以在圆内滚动, 问点 1 在成为转动中心到下一次成为转动中心的过程中经过的路程长度. 题解 枚举点 2 - n 成为转动中 ...

  5. Markdown语法快速学习

    Markdown 简洁语法说明 0.前言 一直以来都是以word文档做笔记,存在很多问题,比如代码格式.高亮等.这次公司要求使用markdown,感觉眼前一亮,以前word的问题都得到了解决,而且可以 ...

  6. (js描述的)数据结构[哈希表1.1](8)

    (js描述的)数据结构[哈希表1.1](8) 一.数组的缺点 1.数组进行插入操作时,效率比较低. 2.数组基于索引去查找的操作效率非常高,基于内容去查找效率很低. 3.数组进行删除操作,效率也不高. ...

  7. MySQL入门,第二部分,必备基础知识点

    一.数据类型 日期和时间数据类型 date 字节 日期,格式:2014-09-18 日期和时间数据类型 time 字节 时间,格式:08:42:30 日期和时间数据类型 datetime 字节 日期时 ...

  8. MySQL学习之路4-数据的导入导出

    数据的导入 通过数据库管理工具,先建表,然后导入表记录. 通过sql语句导入: load data local infile '表路径' into table stuscore fields term ...

  9. PyCharm 项目打开窗口设置为当前还是新开一个怎么办?

     前言:       我找这个设置找了好久,后来在一篇博文中才找到,现在记录下来一下,顺便带图解释一下   设置步骤: File -> Setting -> Appearance & ...

  10. 本地项目推送到Github

    1.在github上repositories新建一个git项目工程 2.使用git,把刚建好的项目clone到本地 3.把本地项目中的文件全部移动到下载下来的git项目中,以下是我本地项目中的文件 4 ...