我在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
在这之前都没有错误,不知道是怎么回事,请热心人指教!
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文件发给我么?
db0146 于 2008-12-04 18:22:40发表:
bbs.linuxsir.org
这个网上有个SUSE专题,里面置顶有个【置顶】 [精] 搜索 openSUSE 软件来此处
点进去有个链接点进去可以搜直接用Yast安装的包下载
搜索lapack,到时候下下来,在SUSE里用yast打开安装就行了,比你编译要好方便。
这个方法应该很好,我搜了,里面有lapack包
db0146 于 2008-12-04 12:56:19发表:
我觉得出现/xlintsts这个错误,是在对.o结尾的文件打包的时候找不着工具,像上面修改一下lapack_LINUX.a路径,应该就对,不对再发帖啊
db0146 于 2008-12-04 12:54:03发表:
刚才查了一下你的错误,不太明白,不过你可以把make.inc里面倒数最后几行有一行:LAPACKLIB = ../../lapack$(PLAT).a改为LAPACKLIB = lapack$(PLAT).a可能就好了,你试一下,
db0146 于 2008-12-04 12:12:30发表:
我用源代码装了一下,出现错误和你的基本是一样的,由于时间原因没有细查,我觉得你可以试一下用deb包安装,我刚在ubunt下装的lapack这个库,就是从网上下了一些与liblapack有关的deb包装的,用deb包还是挺好装的,我想这个库不管是用ifort还是用gfortran或哪种编译器,只要编译通过效果应该是一样的,和用deb包装也应该效果是一样的,SUSE和ubuntu内核一样,ubuntu用deb 包能装上,SUSE也应该行,你那个特定的软件有说明是用SUSE,用ifort编译器,我觉得这个用别的编译器也不见得不行,毕竟内核都是一样的,所以你可以先用deb包一试,不行,再回来找错。
xiaxueducun 于 2008-12-03 17:47:48发表:
我的 是suse linux11.0
这个怎么解决 ?
xiaxueducun 于 2008-12-03 17:47:00发表:
没有人回答么 ?
fghwinlin 于 2008-12-03 16:19:39发表:
如果你的是ubuntu系统,你不如直接sudo apt-get install liblapack-dev 直接
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