libmpi\u mpifh.so.12:未定义符号:mpi\u转换\u fn\u空_

libmpi\u mpifh.so.12:未定义符号:mpi\u转换\u fn\u空_,mpi,openmpi,lib,Mpi,Openmpi,Lib,我正在尝试使用以下命令运行新的解算器 ccx_精度-i实体/瓣-精度参与者结石 但是每次我收到这个错误信息,有什么想法吗 符号查找错误:/usr/lib/libmpi\u mpifh.so.12:未定义的符号:mpi\u转换\u fn\u null_ ldd/usr/lib/libmpi\u mpifh.so.12的输出 linux-vdso.so.1 => (0x00007fffef22b000) libmpi.so.12 => /opt/OpenFOAM/OpenFOAM/Th

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

ccx_精度-i实体/瓣-精度参与者结石

但是每次我收到这个错误信息,有什么想法吗

符号查找错误:/usr/lib/libmpi\u mpifh.so.12:未定义的符号:mpi\u转换\u fn\u null_

ldd/usr/lib/libmpi\u 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)

因此,为了科学起见,我实际上通过Arch Linux中的
pacman
安装了这个标准包。我能够找到符号mpi_conversion_fn_null_u,这对您来说是未定义的。符号实现实际上在
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 000000000000000 C基本mpi\u转换\u fn\u空_
我安装的openmpi版本是4.0.2,这导致我的libmpi.so指向libmpi.so.40。我认为我们可以放心地假设您的libmpi.so.12是版本1.2,这已经落后了很多


如果您有此选项,请安装更新版本的openmpi。如有必要,您也可以。

您有图书馆问题。可能是不正确的版本,除非您自己编译?您可以使用
objdump-tT/usr/lib/libmpi\u mpifh.so.12
查看库中的所有符号。您也可以
ldd/usr/lib/libmpi\u mpifh.so.12
,它应该解析为
/usr/lib/libmpi.so.12
,否则您的
$LD\u library\u路径可能有问题,谢谢您的评论;通过运行(ldd/usr/lib/libmpi\u mpifh.so.12),我得到了以下信息:@Jason>>谢谢你的帮助;然而,我得到了一个很长的列表,我不知道这是否能帮助我定义问题。带有:/usr/lib/libmpi_mpifh.so.12的打印输出统计信息:文件格式elf64-x86-64符号表:无符号动态符号表:嘿,你的答案应该是对问题的编辑,因为它不是答案=D。无论如何,我要尝试一下,并说引用应该在libmpi中。如果运行
objdump-Tt/opt/OpenFOAM/OpenFOAM/ThirdParty-v1712/platforms/linux64Gcc63/openmpi-1.10.4/lib64/libmpi.so.12 | grep mpi_conversion_fn_null 
则不会返回任何内容(猜测)。如果是这种情况,您可能没有libmpi.so的兼容版本