libmpi_mpifh.so.12:未定义符号:mpi_conversion_fn_null_

问题描述 投票:0回答:1

我正在尝试使用以下命令运行新的求解器

ccx_preCICE -i Solid/flap -precice-参与者 Calculix

但是每次我收到此错误消息时,有什么想法吗?

符号查找错误:/usr/lib/libmpi_mpifh.so.12:未定义符号:mpi_conversion_fn_null_

ldd /usr/lib/libmpi_mpifh.so.12
的输出:

linux-vdso.so.1 =>  (0x00007fffef22b000)
libmpi.so.12 => /opt/OpenFOAM/OpenFOAM/ThirdParty-v1712/platforms/linux64Gcc63/openmpi-1.10.4/lib64/libmpi.so.12 (0x00007fe376a60000)
libopen-pal.so.13 => /opt/OpenFOAM/OpenFOAM/ThirdParty-v1712/platforms/linux64Gcc63/openmpi-1.10.4/lib64/libopen-pal.so.13 (0x00007fe376780000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe376550000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe376170000)
libopen-rte.so.12 => /opt/OpenFOAM/ThirdParty-v1706/platforms/linux64Gcc63/openmpi-1.10.4/lib64/libopen-rte.so.12 (0x00007fe375ef0000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe375cd0000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe375ac0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe3757b0000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fe375590000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe377000000)
c mpi openmpi
1个回答
0
投票

因此,为了科学起见,我实际上通过 Arch Linux 中的

pacman
安装了标准包。 我找到了对您来说未定义的符号 mpi_conversion_fn_null_ 。 该符号实现实际上在
libmpi.so.x
中。 我的 libmpi.so 安装到
/usr/lib/openmpi
,因此我可以使用以下命令检查此符号:

objdump -tT /usr/lib/openmpi/libmpi.so | grep -w mpi_conversion_fn_null_

000000000009fc80  w   DF .text  000000000000000c  Base        mpi_conversion_fn_null_

我安装的 openmpi 版本是 4.0.2,这导致我的 libmpi.so 指向 libmpi.so.40。 我认为我们可以放心地假设您的 libmpi.so.12 是版本 1.2,这已经落后了很多。

如果可以选择,请安装较新版本的 openmpi。 如果需要,您还可以从源代码构建它

© www.soinside.com 2019 - 2024. All rights reserved.