adplayer移植【转】
本文转载自:https://blog.csdn.net/qq361294382/article/details/50525412
这两天做madplayer移植,由于是刚装的ubuntu14.04,所以有好多库没装,还有其它未配置起来的地方,搞起来有几个问题,不过组后按着教程一步一步都解决了。
首先需要准备的安装包如下:
madplay-0.15.2b.tar.gz
libmad-0.15.1b.tar.gz
libid3tag-0.15.1b.tar.gz
zlib-1.1.4.tar.gz
前三个包地址:http://sourceforge.net/project/showfiles.php?group_id=12349
第四个包zlib地址:http://www.gzip.org/zlib/zlib-1.1.4.tar.gz中找到。
我的所有库和头文件都安装在目录:/work/drivers_and_test/21th_sound/app/tmp里面,用到的4个包都解压在/work/drivers_and_test/21th_sound/app/目录下,可以自己根据自己需要建立自己的安装目录。
1.安装zlib
tar xvzf zlib-1.2.5.tar.gz
cd zlib-1.2.3.tar.gz
./configure --host=arm-linux --prefix=/work/drivers_and_test/21th_sound/app/tmp,生成Makefile文件,
再修改makefile文件,添加自己系统中gcc所在的目录,有的不需要修改:
CC=/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-gcc
AR=/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-ar rcs
RANLIB=/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-ranlib
注:如果之前编译过,则先要把上次编译的结果清除:make distclean
接着 make
然后make install
编译好之后就可以在上面prefix指定的目录/work/drivers_and_test/21th_sound/app/tmp下的lib目录下找到libz.a这个库。
2.编译libid3tag
在libid3tag目录下执行以下操作就可以安装libid3tag库
./configure --host=arm-linux --prefix=/work/drivers_and_test/21th_sound/app/tmp CPPFLAGS=-I/work/drivers_and_test/21th_sound/app/tmp/include LDFLAGS=-L/work/drivers_and_test/21th_sound/app/tmp/lib
make
make install
解释:CC后 的参数为交叉编译器的绝对路径,--prefix后指定的是安装目录,CPPFLAGS、LDFLAGS
后的-I、-L为固定形式,之后的路径为安装libid3tag的路径下的子目录。我一开始没有加CPPFLAGS、LDFLAGS,
有错误提示:
configure: error: zlib.h was not found
*** You must first install zlib (libz) before you can build this package.
*** If zlib is already installed, you may need to use the CPPFLAGS
*** environment variable to specify its installed location, e.g. -I<dir>.
可能是没有在tmp目录下生成所需的库,加上-I、-L后就没这问题了。
3.编译libmad
在libmad目录下执行以下操作就可以安装libid3tag库
./configure --host=arm-linux --prefix=/work/drivers_and_test/21th_sound/app/tmp CPPFLAGS=-I/work/drivers_and_test/21th_sound/app/tmp/include LDFLAGS=-L/work/drivers_and_test/21th_sound/app/tmp/lib
make
make install
如果有提示:"-fforce-mem"参数不能识别,打开当前目录下的Makefile文件,去掉里面出现的"-fforce-mem",然后再make,make install就OK了。
4.编译madplay
./configure --host=arm-linux --prefix=/work/drivers_and_test/21th_sound/app/tmp CPPFLAGS=-
I/work/drivers_and_test/21th_sound/app/tmp/include LDFLAGS=-L/work/drivers_and_test/21th_sound/app/tmp/lib
然后,make
这样就生成了madplay可执行文件,下载到板子上去就可以使用了。
adplayer移植【转】的更多相关文章
- MVVM框架从WPF移植到UWP遇到的问题和解决方法
MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...
- IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比(deep dive)
首先说明下为什么写这篇文章,网上有许多博客也是介绍I2C驱动在linux上移植的实现,但是笔者认为他们相当一部分没有分清所写的驱动时的驱动模型,是基于device tree, 还是基于传统的Platf ...
- Linux主机上使用交叉编译移植u-boot到树莓派
0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...
- STM32F429 LCD程序移植
STM32F429自带LCD驱动器,这一具有功能给我等纠结于屏幕驱动的程序员带来了很大的福音.有经验的读者一定有过这样的经历,用FSMC驱动带由控制器的屏幕时候,一旦驱动芯片更换,则需要重新针对此驱动 ...
- 将MPM雪模拟移植到Maya
同事实现了一个迪士尼的MPM雪模拟论文,我将其移植到Maya中 论文题目是 A material point method for snow simulation 代码在这里: https://git ...
- ucos实时操作系统学习笔记——操作系统在STM32的移植
使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...
- DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)上的实现(deep dive)篇一
关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基 ...
- geotrellis使用(二十五)将Geotrellis移植到spark2.0
目录 前言 升级spark到2.0 将geotrellis最新版部署到spark2.0(CDH) 总结 一.前言 事情总是变化这么快,前面刚写了一篇博客介绍如何将geotrellis移植 ...
- geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑
目录 前言 若干坑 总结 一.前言 近期干了一件事情,将geotrellis程序移植到CDH中(关于CDH,可以参考安装ClouderaManager以及使用ClouderaManage ...
随机推荐
- Using Notepad++ To Quickly Format XML
http://geek.sylvainw.com/2010/03/28/using-notepad-to-quickly-format-xml/ My favorite way to quickly ...
- 编写高质量代码--改善python程序的建议(三)
原文发表在我的博客主页,转载请注明出处! 建议十三:警惕eval()的安全漏洞 相信经常处理文本数据的同学对eval()一定是欲罢不能,他的使用非常简单: eval("1+1==2" ...
- selenium 方法导图
- vue学习之旅:入门
首先利用脚手架vue cli搭建vue环境 引入 vue <script src="https://unpkg.com/vue/dist/vue.js"></sc ...
- 手动爬虫之淘宝笔记本栏(ptyhon3)
1.这次爬虫用到了之前封装的Url_ProxyHelper类,源代码如下 import urllib.request as ur class Url_ProxyHelper: def __init__ ...
- Access 2010 VBA 读取 表中的数据
Option Compare Database Private Sub Command0_Click() Dim db Dim rs As Recordset Dim str As String Se ...
- 储存应用程序的配置信息ini实现方式
1.C语言中文件操作.2.C++语言中的文件操作.3.Win32 API函数文件操作.4.MFC CFile类文件操作.5.MFC CFileDialog类的文件操作.6.注册表文件操作. 下面我来详 ...
- 2015-03-22——js常用的String方法
String string.charAt(pos); //返回字符串中pos位置处的字符.如果pos小于0或大于等于string.length返回空字符串.模拟实现:Function.prototy ...
- 总结! http post请求 application/x-www-form-urlencoded body体数据获取不到?
首先,简单介绍下Http请求中Content-Type类型 类型格式:type/subtype(;parameter)? type 主类型,任意的字符串,如text,如果是*号代表所有: subtyp ...
- 我的Android进阶之旅------>Android Studio使用statistics插件统计项目代码总行数
今天公司说要统计一下项目总共了多少行代码,于是上网看了一下使用statistic插件可以统计代码总行数,下面给大家分享一下 ! 1.下载[statistic]插件 首先当然要把名为[statistic ...