使用 Ubuntu 12.04 的 open-MPI 问题

使用 Ubuntu 12.04 的 open-MPI 问题

我将 Ubuntu 从 10.04 更新到 12.04,并使用 g95 编译器从网站 www.open-mpi.org 安装了 open-mpi1.6.1(因为必须这样做才能运行 chimere 空气污染模型)。两年前,我使用 Ubuntu 10.04 和 open-mpi1.4.1 做了同样的事情,没有任何问题。现在程序总是停止并显示:

/opt/openmpi-1.6.1-g95/bin/mpif90 -o chimere.e -I/usr/local/include -I/include -cpp -O3  -DG95 -fno-second-underscore -i4  -DMPI -ffree-form -ffree-line-length-huge \
                chimere.o integrun.o master_message_subs.o master_locvalues.o \
                chimere_common.o message_defs.o chimere_consts.o chimere_params.o \
                -L.  -linitio -ltools -lmodel -ltools -liso -L/usr/local/lib -lnetcdf -L/lib -L/opt/openmpi-1.6.1-g95/lib/

ld: chimere.o: undefined reference to symbol 'mpi_null_delete_fn_'

ld: note: 'mpi_null_delete_fn_' is defined in DSO /opt/openmpi-1.6.1-g95/lib/libmpi.so.1 so try adding it to the linker command line

/opt/openmpi-1.6.1-g95/lib/libmpi.so.1: could not read symbols: Invalid operation

make: *** [chimere] Error 1

我将 open-mpi 库的链接(ln -s)设置/usr/lib

objdump -T /usr/lib/libmpi.so.1 

indicates mpi_null_delete_fn and mpi_null_delete_fn_

http://pastebin.com/K08EnJAF描述了类似的问题。

有人知道如何解决这个问题吗?

答案1

添加-lmpi到您的通话中。

您指定了正确的库所在的位置,但没有告诉链接器链接它。

相关内容