2014-01-25 4 views
1

Надеюсь, вы можете мне помочь. Я хочу установить libmad и madplay на свою Систему, чтобы SOX мог декодировать mp3-файлы.SOX: установка libmad make [1]: *** [all-recursive] Ошибка 1 & make: *** [все] Ошибка 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 

Что i've сделано:

Скачать:

[[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 Относящийся но я дам ему один раз за ошибки я получаю)

[[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

Похоже, что код старый. Опция -fforce-mem не поддерживается в GCC уже много лет. См., Например, gcc's -fforce-mem option.

Если вы просто хотите получить эту работу, я рекомендую вам просмотреть файлы Makefile для ссылок на -fforce-mem и просто удалить этот флаг. Обратите внимание, что каждый раз, когда вы повторно запускаете configure, вам придется сделать это еще раз, поскольку файлы Makefile будут воссозданы.

Если вы хотите исправить это «по-настоящему», вам нужно будет найти места в autoconf и автоматизировать файлы, которые его используют, и удалить их оттуда.

Мне также очень странно, что код заставляет архитектуру быть i486 который действительно старый и будет намного медленнее. Если у вас действительно есть i486, который я нахожу довольно маловероятным в 2014 году.

+0

Действительно спасибо, что я удаляю строку 'optimize =" $ optimize -fforce-mem' в файле 'configure' и' configure.ac' и он исправил мою проблему. – Paixsn

Смежные вопросы