问题描述
运行了一下教程里的算例,发现log_run_parallel_cfdemSolverPiso_ErgunTestMPI_CFDDEM里显示出现如下错误
cfdemSolverPiso: error while loading shared libraries: liblmp_auto.so: cannot open shared object file: No such file or directory
cfdemSolverPiso: error while loading shared libraries: liblmp_auto.so: cannot open shared object file: No such file or directory
cfdemSolverPiso: error while loading shared libraries: liblmp_auto.so: cannot open shared object file: No such file or directory
cfdemSolverPiso: error while loading shared libraries: liblmp_auto.so: cannot open shared object file: No such file or directory
意思就是没有找到liblmp_auto.so这个库
并且运行结果报出这个错误:
Q群里的一位大佬跟我说是链接库的问题.
于是搜索了一下这个库liblmp_auto.so到底存不存在.
输入
locate liblmp_auto.so
显示
/home/cl/CFDEM/CFDEMcoupling-PUBLIC-5.0/platforms/linux64GccDPInt32Opt/lib/liblmp_auto.so
/home/cl/LIGGGHTS/LIGGGHTS-PUBLIC/src/liblmp_auto.so
/home/cl/LIGGGHTS/LIGGGHTS-PUBLIC/src/lmp_auto
显然库是存在的, 那为什么没有找到这个库呢? 猜测原因是没有链接好, 链接的地址没指向对.
想起自己曾经改过一次主机名,可能就是这个原因导致地址错误.
恰好, cfdem有一个检查库链接和环境设置的方法:
输入
cfdemSysTest
结果里面可以看到这一行:(太长这里就先截取这一小段)
LIGGGHTS library link (created during compilation of CFDEM)
lrwxrwxrwx 1 cl cl 53 12月 8 2017 /home/cl/CFDEM/CFDEMcoupling-PUBLIC-5.0/platforms/linux64GccDPInt32Opt/lib/liblmp_auto.so -> /home/hwb/LIGGGHTS/LIGGGHTS-PUBLIC/src/liblmp_auto.so
就代表着cfdem下这个库仍然指向liggghts的旧路径.
确认了是更改主机名造成的库链接地址错误的问题
解决方法
恰好,cfdem下面提供了一个更新库链接的简单方法,只需要输入
cfdemRefreshLigLink
库的链接就更新了!
再试一下,发现算例运行正常! 问题解决!