Molden是电子结构计算前后处理的优秀软件,而且开源免费。但是似乎在ubuntu上面编译它并不是非常直接。本文主要参考Reddit 上的一个解决方法,针对我目前用的系统给出编译和安装流程
-
根据Molden文档安装依赖库
sudo apt-get install gfortran sudo apt-get install libgl1-mesa-dev sudo apt-get install build-essential sudo apt-get install mesa-common-dev sudo apt-get install libglu1-mesa-dev sudo apt-get install libxmu-dev sudo apt-get install xutils-dev sudo apt-get install wget
在我的系统中,
libX11-6
,libX11-dev
和libgl1-mesa-glx
无法安装,但似乎没有影响后续编译。 -
去Molden官网下载源文件并解压,目前最新版为molden7.3
wget https://ftp.science.ru.nl/Molden/molden7.3.tar.gz tar xvf molden7.3.tar.gz cd molden7.3
-
修改
makefile
以便适应新的gfortran编译器
根据Reddit教程的解释, 在gfortran 10版本之后, argument miss match会从warning变为error, 从而导致无法正常编译. 因此, 需要在编译时添加flag-w -fallow-argument-mismatch
来避免编译报错. 具体操作为: 将makefile
,src/ambfor/makefile
以及docker/makefile
三个文件中的所有FFLAGS
都加上上述flag (与原帖不同,docker/makefile
文件也需要修改)与原教程不同的是, 我还 注释掉了
makefile
中all
tag中的$(EXTEN)
, 根据个人理解, 这部分应该属于install步骤而不是编译环节 -
make
make
make后, 可执行文件全部包含在了
bin
文件夹中, 这时候编译工作就完成了. -
(可选) 进一步修改
makefile
及utils
中的文件以便正确安装
首先,install
tag中直接将安装目录设置为了/usr/loc/bin
, 如果需要安装到本地目录, 如需更换, 可以更改. 同时需要联动更改的还有extent2
标签中的/usr/local/bin
文件夹的位置. 同时, 应该删除install
中的sudo
以提升安全性
然后修改utils/register_extension.sh
, 将DIR
的赋值改为DIR=$1
来正确读取脚本的argument. 同时注释掉最后的sudo cp ~/.local/share/applications/$APP.desktop /usr/share/app-install/desktop/$APP:$APP.desktop
最后make install
进行安装.
可以直接下载修改后的molden文件, 并更改makefile
中的PREFIX
来修改安装目录, 方便安装.