未定义的符号mpi_fortran_errcodes_ignore__

时间:2015-11-11 10:08:57

标签: fortran mpi static-linking gfortran

我试图在Ubuntu 14.04上编译Fortran程序(vasp)。

我在旧系统(13.10)上取得了成功,但在重新安装我的机器后,我收到了一个符号查找错误:

  

/usr/lib/libmpi_f77.so.1:未定义的符号:mpi_fortran_errcodes_ignore __

奇怪的是,这个符号似乎确实在那里:

  

readelf -W -s /usr/lib/libmpi_f77.so.1 | grep" errcodes_ignore"

     

16:0000000000000000 0 OBJECT GLOBAL DEFAULT UND mpi_fortran_errcodes_ignore__       142:0000000000000000 0 OBJECT GLOBAL DEFAULT UND mpi_fortran_errcodes_ignore       244:0000000000000000 0 OBJECT GLOBAL DEFAULT UND mpi_fortran_errcodes_ignore _

我怀疑这可能是由于符号仅在库的静态部分,因为我运行时

  

readelf -W -s -D /usr/lib/libmpi_f77.so.1 | grep" errcodes_ignore"

我没有得到任何结果,但我对这究竟是什么问题以及如何解决这个问题有点无能为力。

任何帮助都将不胜感激。

谢谢,

马丁。

1 个答案:

答案 0 :(得分:0)

我实际上在这个问题的帮助下解决了这个问题: symbol lookup error despite the symbol being present in linked library

我的LD_LIBRARY_PATH包含指向不同版本MPI的路径(用于我正在使用的其他软件)。在运行程序之前更改路径解决了问题。