红联Linux门户
Linux帮助

请高手指教!lapack安装问题

发布时间:2008-12-02 19:25:35来源:红联作者:xiaxueducun
我在make的时候出现了以下问题:
b.o sdrvpo.o \
../../tmglib_LINUX.a ../../lapack_LINUX.a ../../blas_LINUX.a -o xlintsts && mv xlintsts ../xlintsts
../../lapack_LINUX.a(slacn2.o): In function `slacn2_':
slacn2.f:(.text+0x5d2): undefined reference to `__svml_roundf4'
slacn2.f:(.text+0x615): undefined reference to `__svml_roundf4'
slacn2.f:(.text+0x644): undefined reference to `__svml_roundf4'
slacn2.f:(.text+0x682): undefined reference to `__svml_roundf4'
slacn2.f:(.text+0x824): undefined reference to `__svml_roundf4'
../../lapack_LINUX.a(slacn2.o):slacn2.f:(.text+0x868): more undefined references to `__svml_roundf4' follow
../../lapack_LINUX.a(slarnv.o): In function `slarnv_':
slarnv.f:(.text+0x2d6): undefined reference to `__svml_logf4'
slarnv.f:(.text+0x2f8): undefined reference to `__svml_cosf4'
slarnv.f:(.text+0x364): undefined reference to `__svml_logf4'
slarnv.f:(.text+0x37a): undefined reference to `__svml_cosf4'
slarnv.f:(.text+0x406): undefined reference to `__svml_logf4'
slarnv.f:(.text+0x428): undefined reference to `__svml_cosf4'
make[2]: *** [../xlintsts] 错误 1
make[2]: Leaving directory `/usr/software/LAPACK/lapack-3.2/TESTING/LIN'
make[1]: *** [xlintsts] 错误 2
make[1]: Leaving directory `/usr/software/LAPACK/lapack-3.2/TESTING'
make: *** [lapack_testing] 错误 2

在这之前都没有错误,不知道是怎么回事,请热心人指教!
文章评论

共有 9 条评论

  1. xiaxueducun 于 2008-12-04 20:50:46发表:

    make[1]: Entering directory `/usr/software/lapack-3.1.0/TESTING'
    NEP: Testing Nonsymmetric Eigenvalue Problem routines
    ./xeigtsts < nep.in > snep.out 2>&1
    现在变成到这过不去了。。。
    之前我看3楼的回答之后,有去网上搜lapack的rpm包安装。可是安完之后,在/sur/lib下生成的是liblapack.so.3.1.1和libblas.so.3.1.1文件,我要的是.a文件,这 一样么?
    你能把你能编译通过的make.inc文件发给我么?

  2. db0146 于 2008-12-04 18:22:40发表:

    bbs.linuxsir.org
    这个网上有个SUSE专题,里面置顶有个【置顶】 [精] 搜索 openSUSE 软件来此处
    点进去有个链接点进去可以搜直接用Yast安装的包下载
    搜索lapack,到时候下下来,在SUSE里用yast打开安装就行了,比你编译要好方便。
    这个方法应该很好,我搜了,里面有lapack包

  3. db0146 于 2008-12-04 12:56:19发表:

    我觉得出现/xlintsts这个错误,是在对.o结尾的文件打包的时候找不着工具,像上面修改一下lapack_LINUX.a路径,应该就对,不对再发帖啊

  4. db0146 于 2008-12-04 12:54:03发表:

    刚才查了一下你的错误,不太明白,不过你可以把make.inc里面倒数最后几行有一行:LAPACKLIB = ../../lapack$(PLAT).a改为LAPACKLIB = lapack$(PLAT).a可能就好了,你试一下,

  5. db0146 于 2008-12-04 12:12:30发表:

    我用源代码装了一下,出现错误和你的基本是一样的,由于时间原因没有细查,我觉得你可以试一下用deb包安装,我刚在ubunt下装的lapack这个库,就是从网上下了一些与liblapack有关的deb包装的,用deb包还是挺好装的,我想这个库不管是用ifort还是用gfortran或哪种编译器,只要编译通过效果应该是一样的,和用deb包装也应该效果是一样的,SUSE和ubuntu内核一样,ubuntu用deb 包能装上,SUSE也应该行,你那个特定的软件有说明是用SUSE,用ifort编译器,我觉得这个用别的编译器也不见得不行,毕竟内核都是一样的,所以你可以先用deb包一试,不行,再回来找错。

  6. xiaxueducun 于 2008-12-03 17:47:48发表:

    我的 是suse linux11.0
    这个怎么解决 ?

  7. xiaxueducun 于 2008-12-03 17:47:00发表:

    没有人回答么 ?

  8. fghwinlin 于 2008-12-03 16:19:39发表:

    如果你的是ubuntu系统,你不如直接sudo apt-get install liblapack-dev 直接

  9. xiaxueducun 于 2008-12-02 19:27:04发表:

    我的make.inc文件是这样设置的:

    # -*- Makefile -*-
    ####################################################################
    # LAPACK make include file. #
    # LAPACK, Version 3.2 #
    # November 2008 #
    ####################################################################
    #
    # See the INSTALL/ directory for more examples.
    #
    SHELL = /bin/sh
    #
    # The machine (platform) identifier to append to the library names
    #
    PLAT = _LINUX
    #
    # Modify the FORTRAN and OPTS definitions to refer to the
    # compiler and desired compiler options for your machine. NOOPT
    # refers to the compiler options desired when NO OPTIMIZATION is
    # selected. Define LOADER and LOADOPTS to refer to the loader
    # and desired load options for your machine.
    #
    FORTRAN = /opt/intel/fc/10.1.021/bin/ifort
    OPTS = -O3 -xP -axP
    DRVOPTS = $(OPTS)
    NOOPT =
    LOADER = /opt/intel/fc/10.1.021/bin/ifort
    LOADOPTS =

    #
    # Timer for the SECOND and DSECND routines
    #
    # Default : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME
    # TIMER = EXT_ETIME
    # For RS6K : SECOND and DSECND will use a call to the EXTERNAL FUNCTION ETIME_
    # TIMER = EXT_ETIME_
    # For gfortran compiler: SECOND and DSECND will use a call to the INTERNAL FUNCTION ETIME
    # TIMER = INT_ETIME
    # If your Fortran compiler does not provide etime (like Nag Fortran Compiler, etc...)
    # SECOND and DSECND will use a call to the Fortran standard INTERNAL FUNCTION CPU_TIME
    TIMER = INT_CPU_TIME
    # If neither of this works...you can use the NONE value... In that case, SECOND and DSECND will always return 0
    # TIMER = NONE
    #
    # The archiver and the flag(s) to use when building archive (library)
    # If you system has no ranlib, set RANLIB = echo.
    #
    ARCH = ar
    ARCHFLAGS= cr
    RANLIB = ranlib
    #
    # The location of BLAS library for linking the testing programs.
    # The target's machine-specific, optimized BLAS library should be
    # used whenever possible.
    #
    BLASLIB = ../../blas$(PLAT).a
    #
    # Location of the extended-precision BLAS (XBLAS) Fortran library
    # used for building and testing extended-precision routines. The
    # relevant routines will be compiled and XBLAS will be linked only if
    # USEXBLAS is defined.
    #
    # USEXBLAS = Yes
    XBLASLIB =
    # XBLASLIB = -lxblas
    #
    # Names of generated libraries.
    #
    LAPACKLIB = lapack$(PLAT).a
    TMGLIB = tmglib$(PLAT).a
    EIGSRCLIB = eigsrc$(PLAT).a
    LINSRCLIB = linsrc$(PLAT).a