计算化学公社

标题: Lapack安装时,Cblas安装报错求助 [打印本页]

作者
Author:
发光    时间: 2021-9-8 13:24
标题: Lapack安装时,Cblas安装报错求助
本帖最后由 发光 于 2021-9-8 15:15 编辑

各位老师,中午好:
     安装BLAS成功,按照网上的步骤(先安装BLAS,再安装CBLAS, 最后安装LAPACK)安装CBLAS时,编译(make)报错:(centOS7, 虚拟机)
gfortran  -o xscblat1 c_sblat1.o c_sblas1.o ../lib/cblas_LINUX.a libblas.a
../lib/cblas_LINUX.a(cblas_srotg.o):在函数‘cblas_srotg’中:
cblas_srotg.c:(.text+0x1):对‘srotg_’未定义的引用
../lib/cblas_LINUX.a(snrm2sub.o):在函数‘snrm2sub_’中:
snrm2sub.f:(.text+0x7):对‘snrm2_’未定义的引用
../lib/cblas_LINUX.a(scnrm2sub.o):在函数‘scnrm2sub_’中:
scnrm2sub.f:(.text+0x7):对‘scnrm2_’未定义的引用
collect2: 错误:ld 返回 1
make[1]: *** [xscblat1] 错误 1
make[1]: 离开目录“/usr/local/src/CBLAS/testing”
make: *** [alltst] 错误 2

Makefile.in文件内容如下:

#-----------------------------------------------------------------------------
# Platform
#-----------------------------------------------------------------------------

PLAT = LINUX

#-----------------------------------------------------------------------------
# Libraries and includs
#-----------------------------------------------------------------------------

BLLIB = libblas.a
CBLIB = ../lib/cblas_$(PLAT).a

#-----------------------------------------------------------------------------
# Compilers
#-----------------------------------------------------------------------------

CC = gcc
FC = gfortran
LOADER = $(FC)

#-----------------------------------------------------------------------------
# Flags for Compilers
#-----------------------------------------------------------------------------

CFLAGS = -O3 -DADD_
FFLAGS = -O3  

#-----------------------------------------------------------------------------
# Archive programs and flags
#-----------------------------------------------------------------------------

ARCH = ar
ARCHFLAGS = r
RANLIB = echo


中间我尝试BLLIB = libblas.a 改为 =/usr/local/lib/ libblas.a,  一样的报错,希望各位老师解惑,感谢

作者
Author:
jinnengzhi    时间: 2021-9-8 13:59
首先编译blas,然后BLLIB = libblas.a改为实际的目录和文件名,重新编译试试。
作者
Author:
snljty    时间: 2021-9-8 14:39
“按照网上的步骤”指代不明。
我编译时候是先make编译blas和lapack,把编译出的librefblas.a软链接成libblas.a,再make CBLAS编译cblas,make LAPACKE编译lapacke。
作者
Author:
发光    时间: 2021-9-8 15:30
jinnengzhi 发表于 2021-9-8 13:59
首先编译blas,然后BLLIB = libblas.a改为实际的目录和文件名,重新编译试试。

首先感谢您的解答,我确实先编译成功了blas,编译CBLAS时也修改了 Makefile.in 中BLLIB = /usr/local/lib/libblas.a  但是还是报错   ,是因为我的路径没修改对吗?
作者
Author:
jinnengzhi    时间: 2021-9-8 15:35
你编译的blas确定是在这么目录下吗? 文件名也是libblas.a吗?  
BLLIB = /usr/local/lib/libblas.a
作者
Author:
发光    时间: 2021-9-8 15:55
本帖最后由 发光 于 2021-9-8 16:35 编辑
jinnengzhi 发表于 2021-9-8 15:35
你编译的blas确定是在这么目录下吗? 文件名也是libblas.a吗?  
BLLIB = /usr/local/lib/libblas.a

gfortran -c -O3 *.f  
ar rv libblas.a *.o  
su cp libblas.a /usr/local/lib  
这是网上的安装blas步骤 ,确实有

这是cblas (先将Makefile.LINUX修改为Makefile.in)
cp ../BLAS/libblas.a testing
make        cp lib/cblas_LINUX.a   /usr/local/lib/libcblas.a


作者
Author:
发光    时间: 2021-9-8 15:58
snljty 发表于 2021-9-8 14:39
“按照网上的步骤”指代不明。
我编译时候是先make编译blas和lapack,把编译出的librefblas.a软链接成libb ...

非常感谢前辈的回复:
我马上按照前辈的步骤再试一下,如有问题,再向老师请教
另外这是网上的先安装blas,再安装cblas  ,最后安装LAPACK(未列出)
gfortran -c -O3 *.f  
ar rv libblas.a *.o  
su cp libblas.a /usr/local/lib  
这是网上的安装blas步骤 ,确实有

这是cblas (先将Makefile.LINUX修改为Makefile.in)
cp ../BLAS/libblas.a testing
make
cp lib/cblas_LINUX.a /usr/local/lib/libcblas.a
作者
Author:
发光    时间: 2021-9-8 17:02
本帖最后由 发光 于 2021-9-8 17:09 编辑
snljty 发表于 2021-9-8 14:39
“按照网上的步骤”指代不明。
我编译时候是先make编译blas和lapack,把编译出的librefblas.a软链接成libb ...

make[1]: 离开目录“/usr/local/src/lapack-3.4.2/TESTING/MATGEN”
( cd BLAS/TESTING; make -f Makeblat1 )
make[1]: 进入目录“/usr/local/src/lapack-3.4.2/BLAS/TESTING”
gfortran  -O2 -c sblat1.f -o sblat1.o
gfortran  sblat1.o  \
        /usr/local/lib/libblas.a  -o ../xblat1s
sblat1.o:在函数‘check1_’中:
sblat1.f:(.text+0x1408):对‘snrm2_’未定义的引用
sblat1.o:在函数‘check0_’中:
sblat1.f:(.text+0x1733):对‘srotg_’未定义的引用
collect2: 错误:ld 返回 1
make[1]: *** [../xblat1s] 错误 1
make[1]: 离开目录“/usr/local/src/lapack-3.4.2/BLAS/TESTING”
make: *** [blas_testing] 错误 2
我把make.inc中的librefblas.a修改成了libblas.a,因为我blas编译时的生成的是libblas.a,出现以上报错。
前辈,能把您的安装步骤给我简要写一下吗? 非常感谢

作者
Author:
snljty    时间: 2021-9-8 17:17
本帖最后由 snljty 于 2021-9-9 09:20 编辑
发光 发表于 2021-9-8 17:02
make[1]: 离开目录“/usr/local/src/lapack-3.4.2/TESTING/MATGEN”
( cd BLAS/TESTING; make -f Makebl ...

你试试这个,我也记不清了
cd 解压源码后的目录
mkdir build
cd build
cmake -G "Unix Makefiles" -DLAPACKE=ON -DCBLAS=ON -DCMAKE_INSTALL_LIBDIR=C/opt/lapack-3.9.1/lib -DCMAKE_INSTALL_INCLUDEDIR=/opt/lapack-3.9.1/include ..
cmake --build . -j2 --target install
作者
Author:
发光    时间: 2021-9-9 09:13
snljty 发表于 2021-9-8 17:17
你试试这个,我也记不清了
cd 解压源码后的目录
mkdir build

首先感谢前辈提供的步骤,按照前辈的步骤,lapack目录下make成功,但是返回cblas, make时,还是报错。

前辈空闲的时候,能否劳烦前辈的把后续的简要安装步骤写下来。
太麻烦前辈了
作者
Author:
snljty    时间: 2021-9-9 09:25
发光 发表于 2021-9-9 09:13
首先感谢前辈提供的步骤,按照前辈的步骤,lapack目录下make成功,但是返回cblas, make时,还是报错。

...

不用叫前辈,我好像还没那么老...
其实lapack本身也不是效率太高,如果不很在意效率的话,实在不行直接apt install或者yum install就行。另外有些版本部分代码有点问题,一些常见编译器可能编译不过去。你试试3.9.1。
作者
Author:
xiuxiu1    时间: 2021-10-7 11:51
楼主您好,想请问一下您的Lapack安装时,Cblas安装报错解决了吗?我也遇到了同样的问题,卡了很久。
作者
Author:
cyb    时间: 2022-1-13 18:58
楼主你好,请问你CBLAS安装报错解决了吗,我现在也遇到了这个问题,在网上查了很久也没有找到答案




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3