先前,准备利用手头已装好的MKL库编译wannier。然而,经过多日多方的尝试,最终不得不承认Gfortran编译器+Intel MKL在自己的Ubuntu中的折腾是条死胡同,无论在环境变量中再怎么声明,再怎么更改-l...的库选项和路径,make的过程最多也只能到生成目标文件obj为止,始终连不上既有的Intel库,屡次都以如下错误而中断编译过程:
----------

collect2: error: ld returned 1 exit status
make[1]: *** [../Makefile.2:39:../../w90spn2spn.x] 错误 1
make[1]: 离开目录“/home/hao/wannier90-3.1.0/src/obj”
make: *** [Makefile:34:w90spn2spn] 错误 2collect2: error: ld returned 1 exit status
make[1]: *** [../Makefile.2:49:../../postw90.x] 错误 1
make[1]: 离开目录“/home/hao/wannier90-3.1.0/src/objp”
make: *** [Makefile:54:post] 错误 2

----------
即便自己重新make一套与F95接口的LAPACK和BLAS,也还是无济于事。看来仅单独调用IntelMKL而不采取Intel toolchain是不可行的。
于是果断放弃Intel MKL,转而调用ATLAS。以下是具体安装过程。
一、【安装gfortran编译器和openMPI】
经验证,新版本的gfortran 9.3和openMPI v4.0.3可以用于本次安装。Ubuntu系统可用sudo apt-get install命令实现安装的大部分流程,已有多篇文章教程讲述过,故不复赘述。
二、【安装ATLAS库】
ATLAS库在Ubuntu下可做到一条命令完美安装:

sudo apt-get install libatlas*
<...lots of output...>
atlas --version

以上命令用于检查版本号,验证安装完成与否。
可用whereis逐个检查下列4个库的位置,例如对于第一个,输入

whereis liblapack*

-llapack -lf77blas -lcblas -latlas
默认位置是在/usr/lib/x86_64-linux-gnu/,每个库都各有.a和.so。其中,liblapack已包含在ATLAS库之中,因此无需再装其他的lapack库文件,使用当前的即可。
在确认好ATLAS和LAPACK得到正确安装后,下面就把库的路径添加到环境变量中。输入

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/
export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/
export

用export再次检验一下,能看到上述路径已增添到对应变量中,表示此时能够被系统调用了(只是临时append环境变量并调用,make之前不要退出终端,否则以上path内容会被还原)。
三、【设置wannier90的make.inc参数】
所用的toolchain为gfortran+openMPI+ATLAS数学库+wannier90,遂以./config下的make.inc.gfort为蓝本,主要设置如下5个参数

F90 = gfortran
COMMS  = mpi
MPIF90 = mpif90 #编译并行化的postw90程序
LIBDIR = /usr/lib/x86_64-linux-gnu
LIBS   = -L$(LIBDIR)  -llapack -lf77blas -lcblas -latlas

四、【编译wannier】
在wannier90-3.1.0目录下输入以下命令,并以四线程并行编译:
make -j4 all install DESTDIR=/home/hao/wannier90-3.1.0
make all,即完全安装,总共能编译生成6个.x可执行文件与1个.a的wannier库文件:
wannier90.x libwannier.a postw90.x w90chk2chk.x w90spn2spn.x w90pov w90vdw.x
若指定以上文件的install目录,DESTDIR=<user/wannier/directory>(默认为空,可在make命令后面的参数中输入),则安装完成后,将在<user/wannier/directory>$(PREFIX)目录下生成两个子文件夹:bin(存放*.x)和lib(存放libwannier.a)。
而文件运行的初始目录如下所示:
1.libwannier.a库和wannier90、postw90、w90chk2chk、w90spn2spn等4个可执行文件就在wannier90-3.1.0目录下;
2.w90pov文件在./utility/w90pov/w90pov;
3.w90vdw.x在./utility/w90vdw/w90vdw.x。

在Ubuntu中安装wannier90-3.1.0(非Intel-toolchain)相关推荐

  1. mp3 添加封面 linux,Qmmp音乐播放器1.2.0发布! Ubuntu中安装方法

    Qmmp是一款基于Qt的音乐播放器,它具有winamp或xmms接口,目前已经发布了1.2.0版本(Qt4版本为0.11.0),并增加了许多新功能,改进以及一些错误修复. Qmmp 1.2.0(0.1 ...

  2. linux邮箱客户端安装指令,如何在Ubuntu 18.04中安装邮件客户端Geary 0.12.2

    Geary电子邮件客户端今天早些时候达到了0.12.2错误修复版本.以下是如何在Ubuntu 18.04,Ubuntu 16.04,Ubuntu 17.10中安装它. Geary是一个Gnome电子邮 ...

  3. abp 打包部署到ubuntu_如何在Ubuntu中安装Docker和运行 Docker容器

    Docker是一种开源且流行的操作系统级虚拟化(俗称"容器化")技术,主要在Linux和Windows上运行. Docker使用容器可以更轻松地创建,部署和运行应用程序. 使用容器 ...

  4. Ubuntu中安装Eclipse的SVN插件——subclipse

    Ubuntu中安装Eclipse的SVN插件--subclipse (2010-07-01 18:38) 分类: Linux 安装好Eclipse以后 进入菜单Help->Install new ...

  5. labview linux 内核 不匹配,Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退,LabVIEW就崩溃。...

    Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退,LabVIEW就崩溃. 我安装了LabVIEW pro 2017 for Linux ...

  6. 在Ubuntu中安装MySQL (转载)

    MySQL在Linux Ubuntu中安装 本文使用的Linux是Ubuntu 12.04.2 LTS 64bit的系统,安装MySQL数据库软件包可以通过apt-get实现. 在Linux Ubun ...

  7. ubuntu合并终端_如何在Ubuntu中安装多个终端以及更改默认终端

    终端是任何Linux系统的关键部分.它允许您通过shell访问Linux系统.虽说现在的Linux发行版,比如Ubuntu,CentOS等已经基本上可以采用GUI来完成绝大部分一般性的任务.但是,终端 ...

  8. 腾达无线网卡驱动linux,在Ubuntu上安装腾达W541U V2.0 (RT2070)无线网卡驱动【使用2011新驱动】...

    这个腾达W541U V2.0 (RT2070)无线网卡,实在无语,网上已经有够多的帖子谈它的驱动问题了.经过一翻折腾,今天在Ubuntu上把安装腾达W541U V2.0 (RT2070)无线网卡驱动过 ...

  9. Ubuntu中安装Qt

    文章目录 Ubuntu中安装必要的软件 安装流程 配置 运行 配置运行 Ubuntu中安装必要的软件 主要为了打开图形程序 sudo apt-get update sudo apt-get --ass ...

  10. ubuntu安装zlib库_如何在Ubuntu中安装zlib库?

    ubuntu安装zlib库 On Ubuntu (18.04), installing zlib reported unable to locate package zlib: 在Ubuntu(18. ...

最新文章

  1. qt 5.9 mysql 5.7_Qt 5.9.1 连 MYSQL 5.7数据库
  2. jmeter连接MySQL出错_MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory...
  3. 轻松处理高于平常10倍的视频需求,还能节省60%的IT成本,蓝墨做对了什么?
  4. python脚本语言是什么意思_python为什么是脚本语言
  5. Vue第三部分(2):Vue-CLI构建前后端分离项目以及打包部署
  6. Android获取图片资源的4种方式
  7. arcgis加载dwg显示一个点_shp文件转为dwg之后在arcgis下打开属性表有高程信息但在cad里面打开为何没高程 - 地学 - 小木虫 - 学术 科研 互动社区...
  8. PuTTY免输密码自动登录Linux,让 Putty 保存密码,自动登陆的三种方法
  9. 倾斜摄影三维模型OSGB格式简化(压缩、优化)
  10. access 的几种更新语句:update where 与 update join where
  11. 韩顺平 教学资料下载
  12. C# Socket简单例子(服务器与客户端通信)【转】
  13. OA开发很简单,OA实施很复杂!
  14. Semantic-UI 的词语
  15. 消防应急照明和疏散指示系统
  16. is与==的恩怨、编码的详解
  17. oracle 10g express linux,使用Oracle10g express 版本方案介绍
  18. 【Matlab】删除cell中所有的空白cell.
  19. 【SSA三维路径规划】基于matlab麻雀算法无人机三维航迹规划【含Matlab源码 301期】
  20. 可行性、易用性性与用户体验的区别

热门文章

  1. 如何将大范围的OPENSTREETMAP-PBF数据进行分割
  2. keepalived实现nginx负载均衡
  3. 提供一个0day(CVE)挖掘思路
  4. 单场淘汰制场次计算方法_淘汰赛_羽毛球新闻
  5. 张钹:走向第三代人工智能
  6. 赝势平面波计算机软件,科学网—赝势平面波方法-摘录 - 叶小球的博文
  7. c#窗体调查问卷_如何在Microsoft窗体中创建问卷
  8. 如何在Mac电脑上添加或删除受信任的电话号码?
  9. Xplus裁员续:被裁员工指其卸磨杀驴
  10. 程序员刚完成项目就被公司辞退,网友称:现实版卸磨杀驴