mpi - libmpi_mpifh.so.12:未定义符号:mpi_conversion_fn_null_
问题描述
我正在尝试使用以下命令运行一个新的求解器
ccx_preCICE -i Solid/flap -precice-participant 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)
解决方案
pacman
因此,为了科学起见,我实际上在 Arch Linux中为此安装了标准包。我能够找到对您来说未定义的符号 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。如有必要,您也可以从源代码构建它。
推荐阅读
- java - java - 如何在java中的非数组网格中填充正方形?
- javascript - 从动态创建的子组件更改状态 - React
- react-native - 安装 Camera 和 react-native-qrcode-scanner 时出错(构建失败并出现异常)
- angular - 下拉选择选项上的样式字体
- angular - Angular 8 和链式 observables
- sharepoint-online - 如何从术语集中加载所有托管元数据值
- google-apps-script - 如何将字符串转换为小写字符串?
- ruby-on-rails - 如何向 has_many 关联添加更有意义的错误消息?
- asp.net - “TextBox”类型的控件“windowMasterSearchBox”必须放在带有 runat=server 的表单标签内
- spring-boot - 将 java_opts 传递给 Kubernetes 中的 Spring Boot 应用程序