加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

mini2440 madplay移植出现问题处理

发布时间:2021-11-23 14:32:41 所属栏目:教程 来源:互联网
导读:刚刚开始,下决心学习linux,所以找出大学时候就购买的mini2440 拿出来折腾。 按照手册一路模仿学习,其中出现不少问题,也都一个一个解决了。可惜那时候没有想来,记录这个过程。 这次在学习到手册的第六章6.5嵌入式程序移植实例的时候出现了问题。看如下图

刚刚开始,下决心学习linux,所以找出大学时候就购买的mini2440 拿出来折腾。
 
按照手册一路模仿学习,其中出现不少问题,也都一个一个解决了。可惜那时候没有想来,记录这个过程。
 
这次在学习到手册的第六章6.5嵌入式程序移植实例的时候出现了问题。看如下图:
 
 
 
target-x86 里面,我一直都没得到 原来的库文件。
 
这篇《友善之臂 madplayer 移植过程补充 》也出现过类似的或者说一模一样的问题,把问题解决了,更重要的是分析出来。
 
问题一:
 
仔细一看,出现的错误:
 
configure: error: zlib.h was not found
*** You must first install zlibz(libz) before you can build this package.
*** If libmad is already installed, you may need to use the CPPFLAGS
*** environment variable to specify its installed location, e.g. -I<dir>.
 
然后我网上查找之后 得知 是缺少了zlib这个库,所以网上找到 zlib-1.2.3.tar.gz  放在Ubuntu里面安装,然后编译libid3tag 这个文件,ok顺利通过了。
 
问题二:
 
接下来libmad文件出现问题
 
报错是:
 
cc1: error: unrecognized command line option '-fforce-mem'
make[2]: *** [version.lo] Error 1
make[2]: Leaving directory `/opt/FriendlyARM/mini2440/madplay/src-x86/libmad-0.15.1b'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/FriendlyARM/mini2440/madplay/src-x86/libmad-0.15.1b'
make: *** [all] Error 2
 
 
百度了一下,原因是GCC3.4以上已经没有-fforce-mem选项,找到相应的makefile,将该选项删除就OK了!
 
具体是:
 
CFLAGS = -Wall -march=i486 -g -O -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2 -fstrength-reduce
 
修改为CFLAGS = -Wall -march=i486 -g -O
 
问题三:
 
编译安装madplay 出现如下问题:
 
checking for sys/soundcard.h... yes
checking machine/soundcard.h usability... no
checking machine/soundcard.h presence... no
checking for machine/soundcard.h... no
checking mad.h usability... no
checking mad.h presence... no
checking for mad.h... no
configure: error: mad.h was not found
*** You must first install libmad before you can build this package.
*** If libmad is already installed, you may need to use the CPPFLAGS
*** environment variable to specify its installed location, e.g. -I<dir>.
根据手册 得知这是一个环境变量的问题
 
还有要输进去的“--CPPFLAGS”  “--LDFLAGS”  把前面的“--”去掉就好了。
 
到这里应该就没有什么问题了。
 
root@ubuntu:/opt/FriendlyARM/mini2440/madplay# cd target-x86/
root@ubuntu:/opt/FriendlyARM/mini2440/madplay/target-x86# ls
bin  include  lib  man  share
root@ubuntu:/opt/FriendlyARM/mini2440/madplay/target-x86# ls bin
abxtest  madplay
root@ubuntu:/opt/FriendlyARM/mini2440/madplay/target-x86#

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读