加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Ubuntu数学库冲突问题及解决办法(liblapack-dev和libopenblas-dev冲突)

(2017-07-23 11:22:27)
标签:

lapack

blas

冲突

ubuntu

apt-get

分类: 学习科研
         前几天经常编译一些第一性原理的软件;本来一切都OK,不料今天编译bigDFT的时候lapack和blas老是过不去。因为时间较紧,临时换用的intel的MKL编译的。晚上回过头来,看看之前的lapack为什么没起作用。

测试的例子是一个lapack的例子,其实自己随手写一个也可以的
people.sc.fsu.edu/~jburkardt/f_src/lapack_examples/lapack_prb.f90

Part-A 问题原因:多个blas和lapack苦冲突
因为是用的apt-get的安装,默认均在/usr/lib下面,
ll查看/usr/lib下面的liblapack.so指向/etc/alternatives/liblapack.so
ll查看/etc/alternatives/liblapack.so发现其指向/usr/lib/openblas-base/liblapack.so.3
删除libopenblas-dev和libopenblas-base后,编译可以通过

Part-B 问题解决
但是执行编译的程序的时候,会报以下错误
./a.out: symbol lookup error: /usr/lib/liblapack.so.3: undefined symbol: sgetrs_N_parallel
明显是因为文件链接的问题
卸载atlas-base, libatlas-base,libatlas,libblas-dev liblapack-dev,
apt-get autoremove atlas-base  libatlas-base   libatlas   libblas-dev   liblapack-dev
然后重新安装
apt-get  install  libblas-dev   liblapack-dev
之后
 gfortran lapack_prb.f90 -llapack -lblas 就没有问题了

PS: 最开始发现  gfortran lapack_prb.f90 -L/usr/lib -llapack -lblas 生成的可执行文件执行的时候会有"segmentation fault"的问题,不过重新登录以后一切正常;也就没有深究下去

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有