Fortran MPI运行时出错的问题";符号查找错误:mpirun:未定义符号:opal_libevent2022_event_base_loop";
我是MPI的新手。我尝试用简单的Hello_世界代码测试MPI。我使用mpifort-c../main.f95-g-w-I/opt/openmpi4.0.1/include编译了代码。输出文件是test1。 当我使用mpirunnp-4./test1时,它给出了一个错误“mpirun:symbol查找错误:mpirun:undefined symbol:opal\u libevent2022\u event\u base\u循环” “。请你找出mpirun的问题所在Fortran MPI运行时出错的问题";符号查找错误:mpirun:未定义符号:opal_libevent2022_event_base_loop";,fortran,gfortran,openmpi,Fortran,Gfortran,Openmpi,我是MPI的新手。我尝试用简单的Hello_世界代码测试MPI。我使用mpifort-c../main.f95-g-w-I/opt/openmpi4.0.1/include编译了代码。输出文件是test1。 当我使用mpirunnp-4./test1时,它给出了一个错误“mpirun:symbol查找错误:mpirun:undefined symbol:opal\u libevent2022\u event\u base\u循环” “。请你找出mpirun的问题所在 program hel
program hello
include 'mpif.h'
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
print*, 'node', rank, ': Hello world'
call MPI_FINALIZE(ierror)
end
我看到您的安装在
/opt/openmpi4.0.1
中。你是手动安装的吗?是否导出LD\u LIBRARY\u PATH
以指向包含MPI库的子目录?您的系统中还有其他MPI吗?是的,我是手动完成的。我已经将LD_LIBRARY_PATH导出到./bashrc作为导出LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openmpi4.0.1/但我没有工作。我的系统中有openmpi1.6.5,它位于/usr/文件夹中。从Debian 8升级到Debian 10后,以前的版本不再工作,因此我将openmpi4.0.1安装到新文件夹/opt/openmpi4.0.1。我不会卸载以前的openmpi。除非是打字错误,否则您应该使用LD\u LIBRARY\u PATH=/opt/openmpi4.0.1/lib64:$LD\u LIBRARY\u PATH
(即指向库目录!)。或者使用lib
而不是lib64
,具体取决于您的安装;你需要检查哪一个在那里。并将/opt/openmpi4.0.1/bin
添加到路径
。使用/opt/openmpi4.0.1/bin
中正确的mpifort
包装器时,您不需要指定-I
。很抱歉,尽管我已经尝试了您的建议,但仍然产生了相同的错误。我运行ompi_info以了解有关openmpi当前版本的更多详细信息。在prefix部分,它给出了/usr和**'--prefix=/usr/local'**作为Configure命令行:部分,这对我来说非常奇怪。因为我在\opt中安装了openmpi。还有一件事,我删除了-I,编译器给出了一个警告gfortran:warning:/opt/openmpi4.0.1/include:linker输入文件未使用,因为链接未完成。我的意思是,当您使用/opt/openmpi4.0.1/bin
中的mpifort
时,您不需要使用整个include行-I/opt/openmpi4.0.1/include
。我认为如果你卸载系统MPI,你会做得最好;这将迫使您正确设置手动安装的路径。