Я обновил Ubuntu с 10.04 до 12.04 и установил open-mpi1.6.1 с сайта www.open-mpi.org, используя компилятор g95 (потому что это необходимо сделать для запуска модели загрязнения воздуха химерами). Два года назад я сделал то же самое, используя 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
Я установил ссылки (ln -s) библиотек open-mpi на /usr/lib
и
objdump -T /usr/lib/libmpi.so.1
indicates mpi_null_delete_fn and mpi_null_delete_fn_
http: / /pastebin.com/K08EnJAF описывает похожую проблему.
У кого-нибудь есть идеи, как решить эту проблему?
Добавьте -lmpi
к вашему звонку.
Вы указали, где находится правильная библиотека, но не сказали своему компоновщику связать ее.