GROMACS的安装以及部分常见报错

本文指导如何在CentOS 7上安装必要的工具如cmake3、gcc和fftw,解决gromacs编译中遇到的NoCMAKE_CXX_COMPILER和版本过低问题,以及内存溢出和编译错误。通过一步步操作,确保gromacs练习顺利进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始安装之前需要准备一些东西(这些的具体安装方式下面会讲的,不过喜欢自己配置环境的话也可以手动捣鼓):

我主要是依照sob大神写的教程来的(http://sobereva.com/457)。里面讲的很清楚,cmake3按照教程下载就可以。不过下面依然遇到了几个问题。

在进行gromacs的编译时出现了以下报错:

No CMAKE_CXX_COMPILER could be found.

这是因为没有安装gcc编译器(天真的我以为cmake会自带这种东西呢 ),可以直接yum install gcc-c++来进行安装。

不过yum提供的gcc可能版本过低(编译需要gcc版本大于5.1.x),可以这样更新(scl只是临时启用高版本的gcc,退出shell就会自动关闭。如果需要长期使用可以参考https://www.cnblogs.com/FengGeBlog/p/14919920.html):

yum install centos-release-scl -y
yum install devtoolset-8 -y
scl enable devtoolset-8 bash

最后用gcc --version来检查一下。

gcc版本过低就可能导致如下报错:

CMake Error in /sob/gromacs-2021.3/build/CMakeFiles/CMakeTmp/CMakeLists.txt:
  Target "cmTC_90232" requires the language dialect "CXX17" , but CMake does
  not know the compile flags to use to enable it.


CMake Error at cmake/gmxDetectTargetArchitecture.cmake:44 (try_compile):
  Failed to generate test project build system.
Call Stack (most recent call first):
  CMakeLists.txt:168 (gmx_detect_target_architecture)

这两个错误似乎都是因为gcc版本过低导致的,低版本不支持c++17,按照上面说的更新一下就好。

最后在编译的时候可能会遇到这种报错:

g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [sql/CMakeFiles/sql_gis.dir/gis/crosses.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql_gis.dir/all] Error 2
make: *** [all] Error 2

c++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2

大概是物理内存被填满了。可以试着建立一个swap分区来让内存使用跟合理一些,参考https://www.cnblogs.com/zsummer/p/4808422.html。如果还是依然报错的话,可以试着去掉make install -j中的-j(虽然但是不知道为什么,明明并行处理会更快一点,似乎是会增加CPU的负担 )。

最后附上一个gromacs的练习册http://www.mdtutorials.com/gmx/😉

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值