我试图在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"
我没有得到任何结果,但我对这究竟是什么问题以及如何解决这个问题有点无能为力。
任何帮助都将不胜感激。
谢谢,
马丁。
答案 0 :(得分:0)
我实际上在这个问题的帮助下解决了这个问题: symbol lookup error despite the symbol being present in linked library
我的LD_LIBRARY_PATH包含指向不同版本MPI的路径(用于我正在使用的其他软件)。在运行程序之前更改路径解决了问题。