2014-01-25 158 views
1

我希望你能幫助我。我想在我的系統上安裝libmad和madplay,以便SOX可以解碼mp3文件。SOX:安裝libmad make [1]:*** [all-recursive]錯誤1&make:*** [all]錯誤2

我的系統:

cat /proc/version 
Linux version 3.4.76-65.111.amzn1.i686 ([email protected]) 
(gcc version 4.6.3 20120306 (Red Hat 4.6.3-2) (GCC)) 
#1 SMP Tue Jan 14 21:06:12 UTC 2014 

什麼從來就完成:

下載:

[[email protected] ~]$ wget ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz 
    --2014-01-25 15:50:40-- ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz 
       => ‘libmad-0.15.1b.tar.gz’ 
    Resolving ftp.mars.org (ftp.mars.org)... 216.75.62.9, 2001:470:8398:101::1 
    Connecting to ftp.mars.org (ftp.mars.org)|216.75.62.9|:21... connected. 
    Logging in as anonymous ... Logged in! 
    ==> SYST ... done. ==> PWD ... done. 
    ==> TYPE I ... done. ==> CWD (1) /pub/mpeg ... done. 
    ==> SIZE libmad-0.15.1b.tar.gz ... 502379 
    ==> PASV ... done. ==> RETR libmad-0.15.1b.tar.gz ... done. 
    Length: 502379 (491K) (unauthoritative) 

    100%[=======================================>] 502,379  1.29MB/s in 0.4s 

    2014-01-25 15:50:41 (1.29 MB/s) - ‘libmad-0.15.1b.tar.gz’ saved [502379] 

解壓

[[email protected] ~]$ gunzip libmad-0.15.1b.tar.gz 
[[email protected] ~]$ tar xfv libmad-0.15.1b.tar 

的./configure(我知道這是很多,不知道它是否是r elevant但我給它一次故障我得到)

[[email protected] libmad-0.15.1b]$ ./configure 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for gawk... gawk 
checking whether make sets $(MAKE)... yes 
checking build system type... i686-pc-linux-gnu 
checking host system type... i686-pc-linux-gnu 
checking for gcc... gcc 
checking for C compiler default output file name... a.out 
checking whether the C compiler works... yes 
checking whether we are cross compiling... no 
checking for suffix of executables... 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether gcc accepts -g... yes 
checking for gcc option to accept ANSI C... none needed 
checking for style of include used by make... GNU 
checking dependency style of gcc... gcc3 
checking for a sed that does not truncate output... /bin/sed 
checking for egrep... grep -E 
checking for ld used by gcc... /usr/bin/ld 
checking if the linker (/usr/bin/ld) is GNU ld... yes 
checking for /usr/bin/ld option to reload object files... -r 
checking for BSD-compatible nm... /usr/bin/nm -B 
checking whether ln -s works... yes 
checking how to recognise dependent libraries... pass_all 
checking how to run the C preprocessor... gcc -E 
checking for ANSI C header files... yes 
checking for sys/types.h... yes 
checking for sys/stat.h... yes 
checking for stdlib.h... yes 
checking for string.h... yes 
checking for memory.h... yes 
checking for strings.h... yes 
checking for inttypes.h... yes 
checking for stdint.h... yes 
checking for unistd.h... yes 
checking dlfcn.h usability... yes 
checking dlfcn.h presence... yes 
checking for dlfcn.h... yes 
checking for g++... g++ 
checking whether we are using the GNU C++ compiler... yes 
checking whether g++ accepts -g... yes 
checking dependency style of g++... gcc3 
checking how to run the C++ preprocessor... g++ -E 
checking for g77... no 
checking for f77... no 
checking for xlf... no 
checking for frt... no 
checking for pgf77... no 
checking for fort77... no 
checking for fl32... no 
checking for af77... no 
checking for f90... no 
checking for xlf90... no 
checking for pgf90... no 
checking for epcf90... no 
checking for f95... no 
checking for fort... no 
checking for xlf95... no 
checking for ifc... no 
checking for efc... no 
checking for pgf95... no 
checking for lf95... no 
checking for gfortran... no 
checking whether we are using the GNU Fortran 77 compiler... no 
checking whether accepts -g... no 
checking the maximum length of command line arguments... 32768 
checking command to parse /usr/bin/nm -B output from gcc object... ok 
checking for objdir... .libs 
checking for ar... ar 
checking for ranlib... ranlib 
checking for strip... strip 
checking if gcc static flag works... yes 
checking if gcc supports -fno-rtti -fno-exceptions... no 
checking for gcc option to produce PIC... -fPIC 
checking if gcc PIC flag -fPIC works... yes 
checking if gcc supports -c -o file.o... yes 
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes 
checking whether -lc should be explicitly linked in... no 
checking dynamic linker characteristics... GNU/Linux ld.so 
checking how to hardcode library paths into programs... immediate 
checking whether stripping libraries is possible... yes 
checking if libtool supports shared libraries... yes 
checking whether to build shared libraries... yes 
checking whether to build static libraries... yes 
configure: creating libtool 
appending configuration tag "CXX" to libtool 
checking for ld used by g++... /usr/bin/ld 
checking if the linker (/usr/bin/ld) is GNU ld... yes 
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes 
checking for g++ option to produce PIC... -fPIC 
checking if g++ PIC flag -fPIC works... yes 
checking if g++ supports -c -o file.o... yes 
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes 
checking dynamic linker characteristics... GNU/Linux ld.so 
checking how to hardcode library paths into programs... immediate 
checking whether stripping libraries is possible... yes 
appending configuration tag "F77" to libtool 
checking for ANSI C header files... (cached) yes 
checking for sys/wait.h that is POSIX.1 compatible... yes 
checking assert.h usability... yes 
checking assert.h presence... yes 
checking for assert.h... yes 
checking limits.h usability... yes 
checking limits.h presence... yes 
checking for limits.h... yes 
checking for unistd.h... (cached) yes 
checking for sys/types.h... (cached) yes 
checking fcntl.h usability... yes 
checking fcntl.h presence... yes 
checking for fcntl.h... yes 
checking errno.h usability... yes 
checking errno.h presence... yes 
checking for errno.h... yes 
checking for an ANSI C-conforming const... yes 
checking for inline... inline 
checking whether byte ordering is bigendian... no 
checking for pid_t... yes 
checking for int... yes 
checking size of int... 4 
checking for long... yes 
checking size of long... 4 
checking for long long... yes 
checking size of long long... 8 
checking for waitpid... yes 
checking for fcntl... yes 
checking for pipe... yes 
checking for fork... yes 
checking whether to optimize for speed or for accuracy... default 
checking for architecture-specific fixed-point math routines... INTEL 
checking for ISO/IEC interpretation... best accepted practices 
checking whether to enable profiling... no 
checking whether to enable debugging... default 
checking whether to enable experimental code... no 
configure: creating ./config.status 
config.status: creating Makefile 
config.status: creating msvc++/Makefile 
config.status: creating libmad.list 
config.status: creating config.h 
config.status: executing depfiles commands 

如果我想使用編譯「使」我得到以下錯誤:

[[email protected] libmad-0.15.1b]$ make 
(sed -e '1s|.*|/*|' -e '1b' -e '$s|.*| */|' -e '$b' \ 
       -e 's/^.*/ *&/' ./COPYRIGHT; echo; \ 
     echo "# ifdef __cplusplus"; \ 
     echo 'extern "C" {'; \ 
     echo "# endif"; echo; \ 
     if [ ".-DFPM_INTEL" != "." ]; then \ 
       echo ".-DFPM_INTEL" | sed -e 's|^\.-D|# define |'; echo; \ 
     fi; \ 
     sed -ne 's/^# *define *\(HAVE_.*_ASM\).*/# define \1/p' \ 
       config.h; echo; \ 
     sed -ne 's/^# *define *OPT_\(SPEED\|ACCURACY\).*/# define OPT_\1/p' \ 
       config.h; echo; \ 
     sed -ne 's/^# *define *\(SIZEOF_.*\)/# define \1/p' \ 
       config.h; echo; \ 
     for header in version.h fixed.h bit.h timer.h stream.h frame.h synth.h decoder.h; do \ 
       echo; \ 
       sed -n -f ./mad.h.sed ./$header; \ 
     done; echo; \ 
     echo "# ifdef __cplusplus"; \ 
     echo '}'; \ 
     echo "# endif") >mad.h 
make all-recursive 
make[1]: Entering directory `/home/ec2-user/libmad-0.15.1b' 
make[2]: Entering directory `/home/ec2-user/libmad-0.15.1b' 
if /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -DFPM_INTEL DASO_ZEROCHECK -Wall -march=i486 -g -O -fforce-mem -fforce-addr -fthread-jump -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fsche ule-insns2 -fstrength-reduce -MT version.lo -MD -MP -MF ".deps/version.Tpo" -c - version.lo version.c; \ 
     then mv -f ".deps/version.Tpo" ".deps/version.Plo"; else rm -f ".deps/ve sion.Tpo"; exit 1; fi 
mkdir .libs 
gcc -DHAVE_CONFIG_H -I. -I. -I. -DFPM_INTEL -DASO_ZEROCHECK -Wall -march=i486 - -O -fforce-mem -fforce-addr -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks -fexpensive-optimizations -fregmove -fschedule-insns2 -fstrength-reduce -MT vers on.lo -MD -MP -MF .deps/version.Tpo -c version.c -fPIC -DPIC -o .libs/version.o 
cc1: error: unrecognized command line option '-fforce-mem' 
make[2]: *** [version.lo] Error 1 
make[2]: Leaving directory `/home/ec2-user/libmad-0.15.1b' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/home/ec2-user/libmad-0.15.1b' 
make: *** [all] Error 2 

回答

1

貌似代碼是舊。多年來,GCC不支持-fforce-mem選項。例如,參見gcc's -fforce-mem option

如果你只是想讓這個工作,我建議你看通過Makefile文件參考-fforce-mem,只需刪除該標誌。請注意,每次您重新運行configure時,都必須重新執行一次,因爲Makefile文件將被重新創建。

如果你想修復它「真實」,你必須去找到autoconf和automake文件的地方使用它,並從那裏刪除它。

我也覺得很奇怪的是,代碼是迫使體系結構爲i486這是真的舊,並會慢得多。除非你真的擁有一個i486,我認爲這在2014年不太可能。

+0

真的非常感謝我在'configure'和'configure.ac'文件中刪除了'optimize ='$ optimize -fforce-mem'這一行。它解決了我的問題。 – Paixsn

相關問題