天嵌 ARM开发社区

 找回密码
 注册
查看: 2431|回复: 9

诚恳请教编译madplay最后一步出错~~

[复制链接]
xiang8000 发表于 2010-11-27 22:30:50 | 显示全部楼层 |阅读模式
主机环境:虚拟机下Red Het 9
交叉编译器:arm-linux-gcc-4.3.2 (编译器位置在/home/usr/local/arm/4.3.2/bin/下)
官网下载的软件包:zlib-1.2.3、libid3tag-0.15.1b.tar.gz、libmad-0.15.1b.tar.gz、madplay-0.15.2b.tar.gz
编译后生成的文件置于/home/madplay文件夹中

编译zlib-1.2.3.tar.gz
#./configure -prefix=/home/madplay
#gedit Makefile
        CC=/home/usr/local/arm/4.3.2/bin/arm-linux-gcc
        LDSHARED=/home/usr/local/arm/4.3.2/bin/arm-linux-gcc
        CPP=/home/usr/local/arm/4.3.2/bin/arm-linux-gcc -E
        AR=/home/usr/local/arm/4.3.2/bin/arm-linux-ar rc
        RANLIB=/home/usr/local/arm/4.3.2/bin/arm-linux-ranlib
#make
#make install
编译生成成功,执行期间一切正常

libid3tag-0.15.1b.tar.gz所使用的编译参数
./configure --host=/home/usr/local/arm/4.3.2/bin/arm-linux --enable-static --disable-shared --disable-debugging --prefix=/home/madplay
#make
#make install
编译生成成功,执行期间一切正常


libmad-0.15.1b.tar.gz所使用的编译参数
./configure --host=/home/usr/local/arm/4.3.2/bin/arm-linux --enable-static --disable-shared -disable-debugging  --prefix=/home/madplay
#make
#make install
编译生成成功,执行期间一切正常,未遇到一些朋友所称的"-fforce-mem"”错误,网友对其错误描述如下
因为我使用的是高版本的arm-linux-gcc-4.3.2编译器,make时出现了“cc1: error: unrecognized command line option "-fforce-mem"”错误,这是因为这个高版本的gcc没有"-fforce-mem"参数,解决的办法是在Makefile里面查找"-fforce-mem",将其删除即可make通过。但我未遇到这个错误


madplay-0.15.2b.tar.gz所使用的编译参数
./configure CC=/home/usr/local/arm/4.3.2/bin/arm-linux-gcc --host=/home/usr/local/arm/4.3.2/bin/arm-linux --enable-static --disable-shared CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib
参数编译这里都没有遇到什么问题或警告提示之类的信息

#make
但执行make这步时遇到警告
/home/madplay/lib/libmad.a: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[2]: *** [madplay] Error 1
make[2]: Leaving directory `/home/srcmadplay/madplay-0.15.2b'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/srcmadplay/madplay-0.15.2b'
make: *** [all] Error 2
[root@linux madplay-0.15.2b]#

查看/home/madplay/lib/文件夹下有libmad.a文件,请问这个错误解决?
 楼主| xiang8000 发表于 2010-11-27 23:05:52 | 显示全部楼层
刚才测试了一下,如果把
madplay-0.15.2b.tar.gz所使用的编译参数
./configure CC=/home/usr/local/arm/4.3.2/bin/arm-linux-gcc --host=/home/usr/local/arm/4.3.2/bin/arm-linux --enable-static --disable-shared CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib

改为:去掉红色字部分
madplay-0.15.2b.tar.gz所使用的编译参数
./configure --host=/home/usr/local/arm/4.3.2/bin/arm-linux --enable-static --disable-shared CPPFLAGS=-I/home/madplay/include LDFLAGS=-L/home/madplay/lib

编译就可以通过,并且生成400多KB的一个madplay文件,但是我用这个文件来播放MP3提示错误,终端显示如下:
[root@XIANG2440 /sbin]# madplay /home/mp3/1阿里郎\ -\ 兰花指.mp3
/sbin/madplay: line 1: syntax error: "(" unexpected

为了表示不是我MP3文件的问题,故下面用开发板自带的madplayold来播放做个对比
[root@XIANG2440 /sbin]# madplayold /home/mp3/1阿里郎\ -\ 兰花指.mp3  
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
tty: /dev/tty: No such file or directory
          Title: 贩
         Artist: 贩
          Album: 2009贩贩2
          Genre: Other
^C^
[root@XIANG2440 /sbin]#
请教问题产生的原因
 楼主| xiang8000 发表于 2010-11-28 00:57:32 | 显示全部楼层
后面又试,出现上面网友所述的cc1: error: unrecognized command line option "-fforce-mem"错误
#gedit configure.ac

case "$optimize" in
        -O|"-O "*)
            optimize="-O"

            optimize="$optimize -fforce-mem"            
optimize="$optimize -fforce-addr"
            : #x optimize="$optimize -finline-functions"
            : #- optimize="$optimize -fstrength-reduce"


请问红字此处到底应该怎么删fforce-mem?
optimize="$optimize -fforce-mem"    原
1:optimize=""
2:optimize="$optimize"
3:整行全删
我都试过,但都还是不能编译通过
错误提示为
cd . && /bin/sh /home/srcmadplay/libmad-0.15.1b/missing --run autoconf
configure.ac:29: error: Autoconf version 2.58 or higher is required
aclocal.m4:6454: AM_INIT_AUTOMAKE is expanded from...
configure.ac:29: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
make: *** [configure] Error 1
[root@linux libmad-0.15.1b]#
 楼主| xiang8000 发表于 2010-11-28 00:59:10 | 显示全部楼层
能否哪位大哥能发一个完整详细的,基于小弟一样的,移植madplay步骤啊?:(
虚拟机下Red Het 9
arm-linux-gcc-4.3.2
官网下载的软件包:zlib-1.2.3、libid3tag-0.15.1b.tar.gz、libmad-0.15.1b.tar.gz、madplay-0.15.2b.tar.gz
 楼主| xiang8000 发表于 2010-11-28 20:42:18 | 显示全部楼层
-/bin/sh: madplay: not found

[root@XIANG2440 /sbin]# ls
adjtimex           ifconfig           mdev               setconsole
arp                ifdown             mkfs.minix         slattach
blkid              ifenslave          mkswap             start-stop-daemon
devmem             ifup               mm                 sulogin
fbsplash           init               modprobe           swapoff
fdisk              insmod             nameif             swapon
findfs             klogd              net_config         switch_root
freeramdisk        loadkmap           pivot_root         sysctl
fsck               logread            poweroff           syslogd
fsck.minix         losetup            raidautorun        udhcpc
getty              lsmod              reboot             vconfig
halt               madplay            rmmod              watchdog
hdparm             makedevs           route              zcip
hwclock            man                runlevel
[root@XIANG2440 /sbin]# madplay /home/mp3/1阿里郎\ -\ 兰花指.mp3
-/bin/sh: madplay: not found
[root@XIANG2440 /sbin]#

明明生成的程序在这下面却提示-/bin/sh: madplay: not found找不到???!!
天嵌_support1 发表于 2010-11-29 19:00:48 | 显示全部楼层
5# xiang8000


看看有没有执行属性,是不是传输上去的时候就坏掉了
348夏日里的春天 发表于 2012-3-6 21:18:05 | 显示全部楼层
-/bin/sh: madplay: not found
我也出现了和5楼一样的错误,查看了madplay,是可执行的,不知道怎么解决的啊


亚瑟王 发表于 2012-3-12 17:22:10 | 显示全部楼层
348夏日里的春天 发表于 2012-3-6 21:18
-/bin/sh: madplay: not found
我也出现了和5楼一样的错误,查看了madplay,是可执行的,不知道怎么解决的 ...

你的madplay是用什么编译器编译出来的?
348夏日里的春天 发表于 2012-3-12 20:23:22 | 显示全部楼层
我没有做madplay,是直接从光盘中拷过来的
348夏日里的春天 发表于 2012-3-12 20:29:45 | 显示全部楼层
我的编译器用的4.3.3的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-30 05:29 , Processed in 1.033137 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表