"找不到-l -l"在Ubuntu 12.04LTS下编译GotoBLAS2时出错

时间:2015-03-26 05:31:05

标签: ubuntu goto blas

GotoBLAS是一个旧包,但一些很棒的开源项目依赖于它。 我是从github.com获得的:

https://github.com/dofi/gotoBLAS/tree/master/Downloads

但是我遇到了以下编译错误(包含易读性),

gcc -O2 -DEXPRECISION -m128bit-long-double -Wall -m64 -DF_INTERFACE_GFORT
 -fPIC  -DSMP_SERVER -DMAX_CPU_NUMBER=2 -DASMNAME= -DASMFNAME=_ -DNAME=_
 -DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -I.. -w -o linktest linktest.c
 ../libgoto2_barcelonap-r1.13.so -L/usr/lib/gcc/x86_64-linux-gnu/4.6 
 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu 
 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib 
 -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu 
 -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../..  
 -l -l -lgfortran -lm -lquadmath -lm -lc   && echo OK.
/usr/bin/ld: cannot find -l-l
collect2: ld returned 1 exit status
make[1]: *** [../libgoto2_barcelonap-r1.13.so] Error 1
make[1]: Leaving directory `/root/Downloads/GotoBLAS2/exports'
make: *** [shared] Error 2

我试图跟踪原因并发现每次编译时都会自动生成一个文件Makefile.conf并设置以下参数(再次,为了易读性而包装,并使用反斜杠的换行符);

FEXTRALIB=-L/usr/lib/gcc/x86_64-linux-gnu/4.6 \
 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu \
 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib \
 -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu \
 -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../..  \
 -l -l -lgfortran -lm -lquadmath -lm -lc  

并在GotoBLAS2 / exports / Makefile中,

../$(LIBSONAME) : ../$(LIBNAME) linux.def linktest.c
    $(CC) $(CFLAGS) -shared -o ../$(LIBSONAME) \
    -Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive \
    -Wl,--retain-symbols-file=linux.def $(EXTRALIB)
    $(CC) $(CFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK.
    rm -f linktest

注意-l -l。我想我还在遗漏一些其他必要的库?他们会是什么?我该如何解决这个问题?

0 个答案:

没有答案