Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I updated Ubuntu from 10.04 to 12.04 and installed open-mpi1.6.1 from the site www.open-mpi.org using the g95 compiler (because it is necessary to do so in order to run the chimere air pollution model). Two years ago I did the same thing using Ubuntu 10.04 and open-mpi1.4.1 without any problem. Now the program always stops with:

/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

I set links (ln -s) of the open-mpi libraries to /usr/lib and

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

indicates mpi_null_delete_fn and mpi_null_delete_fn_

http://pastebin.com/K08EnJAF describes a similar problem.

Does anybody has an idea how to solve this problem?

share|improve this question
add comment

1 Answer 1

Add -lmpi to your call.

You specified where the correct library is located, but you didn't tell your linker to link it.

share|improve this answer
    
Thank you for your answer. I added -lmpi but the error remains. –  Frank Sep 14 '12 at 14:18
    
He is using mpif90, which already takes care of linking against libmpi, so adding -lmpi has no effect. –  kynan Aug 10 '13 at 14:38
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.