Adicione -lmpi
à sua chamada.
Você especificou onde a biblioteca correta está localizada, mas não disse ao vinculador para vinculá-la.
Eu atualizei o Ubuntu de 10.04 para 12.04 e instalei o open-mpi1.6.1 do site www.open-mpi.org usando o compilador g95 (porque é necessário fazê-lo para executar o modelo de poluição do ar do chimere). Dois anos atrás eu fiz a mesma coisa usando o Ubuntu 10.04 e o open-mpi1.4.1 sem nenhum problema. Agora o programa sempre para com:
/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
Eu defino links (ln -s) das bibliotecas open-mpi para /usr/lib
e
objdump -T /usr/lib/libmpi.so.1
indicates mpi_null_delete_fn and mpi_null_delete_fn_
O link descreve um problema semelhante.
Alguém tem uma ideia de como resolver este problema?
Adicione -lmpi
à sua chamada.
Você especificou onde a biblioteca correta está localizada, mas não disse ao vinculador para vinculá-la.