0
SPro安裝SPRO可以在這裏下載,它的運行./configure安裝,製作,make install的。但是,./configure並使兩者都引起錯誤。在ubuntu16.04下(x86_64)
首先,運行./configure,得到如下警告:
爭取更多信息
/large_dsk/share/upload/spro-5.0/spro-5.0/auxdir/missing --help」配置:警告:「失蹤」腳本太舊或丟失
檢查gawk的......沒有
總產量如下:
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/large_dsk/share/upload/spro-5.0/spro-5.0/auxdir/missing: Unknown `--run' option
Try `/large_dsk/share/upload/spro-5.0/spro-5.0/auxdir/missing --help' for more information
configure: WARNING: `missing' script is too old or missing
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
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 gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for AIX... no
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 minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking for library containing strerror... none required
checking for function prototypes... yes
checking for string.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking whether byte ordering is bigendian... no
checking for size_t... yes
checking for char... yes
checking size of char... 1
checking for short... yes
checking size of short... 2
checking for long... yes
checking size of long... 8
checking for ANSI C header files... (cached) yes
checking whether time.h and sys/time.h may both be included... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking for stdlib.h... (cached) yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking for string.h... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for vprintf... yes
checking for _doprnt... no
configure: checking for gcc warning options...
... -Wbad-function-cast
... -Wcast-align
... -Wmissing-declarations
... -Wmissing-prototypes
... -Wnested-externs
... -Wpointer-arith
... -Wshadow
... -Wstrict-prototypes
... -Wwrite-strings
checking if malloc debugging is wanted... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating auxdir/Makefile
config.status: creating test/Makefile
config.status: creating test/ref/Makefile
config.status: creating test/dat/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
其次,運行make時,得到如下錯誤: 我搜索這個錯誤,並獲得在GCC命令添加-lm方法,但得體這是行不通的。 總輸出中是如下:
所以我應該先安裝一些庫或gcc版本是不正確的?我的gcc版本是gcc 5.4.0。
make all-recursive
make[1]: Entering directory '/large_dsk/share/upload/spro-5.0/spro-5.0'
Making all in doc
make[2]: Entering directory '/large_dsk/share/upload/spro-5.0/spro-5.0/doc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/large_dsk/share/upload/spro-5.0/spro-5.0/doc'
Making all in auxdir
make[2]: Entering directory '/large_dsk/share/upload/spro-5.0/spro-5.0/auxdir'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/large_dsk/share/upload/spro-5.0/spro-5.0/auxdir'
Making all in test
make[2]: Entering directory '/large_dsk/share/upload/spro-5.0/spro-5.0/test'
Making all in ref
make[3]: Entering directory '/large_dsk/share/upload/spro-5.0/spro-5.0/test/ref'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/large_dsk/share/upload/spro-5.0/spro-5.0/test/ref'
Making all in dat
make[3]: Entering directory '/large_dsk/share/upload/spro-5.0/spro-5.0/test/dat'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/large_dsk/share/upload/spro-5.0/spro-5.0/test/dat'
make[3]: Entering directory '/large_dsk/share/upload/spro-5.0/spro-5.0/test'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/large_dsk/share/upload/spro-5.0/spro-5.0/test'
make[2]: Leaving directory '/large_dsk/share/upload/spro-5.0/spro-5.0/test'
make[2]: Entering directory '/large_dsk/share/upload/spro-5.0/spro-5.0'
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT sig.o -MD -MP -MF ".deps/sig.Tpo" -c -o sig.o sig.c; \
then mv -f ".deps/sig.Tpo" ".deps/sig.Po"; else rm -f ".deps/sig.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT spf.o -MD -MP -MF ".deps/spf.Tpo" -c -o spf.o spf.c; \
then mv -f ".deps/spf.Tpo" ".deps/spf.Po"; else rm -f ".deps/spf.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT header.o -MD -MP -MF ".deps/header.Tpo" -c -o header.o header.c; \
then mv -f ".deps/header.Tpo" ".deps/header.Po"; else rm -f ".deps/header.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT misc.o -MD -MP -MF ".deps/misc.Tpo" -c -o misc.o misc.c; \
then mv -f ".deps/misc.Tpo" ".deps/misc.Po"; else rm -f ".deps/misc.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT lpc.o -MD -MP -MF ".deps/lpc.Tpo" -c -o lpc.o lpc.c; \
then mv -f ".deps/lpc.Tpo" ".deps/lpc.Po"; else rm -f ".deps/lpc.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT convert.o -MD -MP -MF ".deps/convert.Tpo" -c -o convert.o convert.c; \
then mv -f ".deps/convert.Tpo" ".deps/convert.Po"; else rm -f ".deps/convert.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT fft.o -MD -MP -MF ".deps/fft.Tpo" -c -o fft.o fft.c; \
then mv -f ".deps/fft.Tpo" ".deps/fft.Po"; else rm -f ".deps/fft.Tpo"; exit 1; fi
rm -f libspro.a
ar cru libspro.a sig.o spf.o header.o misc.o lpc.o convert.o fft.o
ar: `u' modifier ignored since `D' is the default (see `U')
ranlib libspro.a
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT scopy.o -MD -MP -MF ".deps/scopy.Tpo" -c -o scopy.o scopy.c; \
then mv -f ".deps/scopy.Tpo" ".deps/scopy.Po"; else rm -f ".deps/scopy.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT gggetopt.o -MD -MP -MF ".deps/gggetopt.Tpo" -c -o gggetopt.o gggetopt.c; \
then mv -f ".deps/gggetopt.Tpo" ".deps/gggetopt.Po"; else rm -f ".deps/gggetopt.Tpo"; exit 1; fi
gggetopt.c: In function \u2018_getopt_long\u2019:
gggetopt.c:442:12: warning: implicit declaration of function \u2018strcmp\u2019 [-Wimplicit-function-declaration]
if (strcmp(optarg, "--") == 0) {
^
gcc -g -O2 -o scopy scopy.o gggetopt.o -lm -L. -lspro
./libspro.a(misc.o): In function `spf_buf_normalize':
/large_dsk/share/upload/spro-5.0/spro-5.0/misc.c:278: undefined reference to `sqrt'
/large_dsk/share/upload/spro-5.0/spro-5.0/misc.c:187: undefined reference to `sqrt'
./libspro.a(misc.o): In function `set_lifter':
/large_dsk/share/upload/spro-5.0/spro-5.0/misc.c:408: undefined reference to `sin'
./libspro.a(misc.o): In function `sig_normalize':
/large_dsk/share/upload/spro-5.0/spro-5.0/misc.c:431: undefined reference to `sqrt'
./libspro.a(misc.o): In function `set_sig_win':
/large_dsk/share/upload/spro-5.0/spro-5.0/misc.c:464: undefined reference to `cos'
/large_dsk/share/upload/spro-5.0/spro-5.0/misc.c:479: undefined reference to `cos'
/large_dsk/share/upload/spro-5.0/spro-5.0/misc.c:479: undefined reference to `cos'
/large_dsk/share/upload/spro-5.0/spro-5.0/misc.c:471: undefined reference to `cos'
collect2: error: ld returned 1 exit status
Makefile:353: recipe for target 'scopy' failed
make[2]: *** [scopy] Error 1
make[2]: Leaving directory '/large_dsk/share/upload/spro-5.0/spro-5.0'
Makefile:432: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/large_dsk/share/upload/spro-5.0/spro-5.0'
Makefile:236: recipe for target 'all' failed
make: *** [all] Error 2
謝謝,這就是問題所在。還有一個問題,你怎麼知道「-lspro」使用「-lm」中的函數? 再次,謝謝。 – shaw
就我而言,我只是說新'sqrt'由'libm'實現。我認爲更新的binutils還會根據搜索路徑中的庫找到一條消息。 –