“(.text + 0x26c4)”的含义是指fortran链接错误信息中的含义?

问题描述:

我在LINUX ubuntu 16.04中使用gfortran编译器和ld连接器。 当我编译Fortran语言编写的77一些计划,我有以下错误信息:“(.text + 0x26c4)”的含义是指fortran链接错误信息中的含义?

libdist.a(setup.F.o): In function `setup_': 
setup.F:(.text+0x26c4): undefined reference to `mpi_send_' 
setup.F:(.text+0x2b3c): undefined reference to `mpi_recv_' 
setup.F:(.text+0x7984): undefined reference to `mpi_send_' 
setup.F:(.text+0xb107): undefined reference to `mpi_recv_' 

我想这是关于错误的位置。然而,我很难找到错误在哪里。

我可以更好地介绍错误的位置吗?如c/cxx错误:“setup.F:15:12:”

+1

尝试在编译命令中包含编译器选项'-g'。 –

这是一个地址。这不是一个Fortran错误。这是一个链接器错误。您可以从C或C++代码或由同一个链接器链接的任何其他编译代码中获得相同的错误。

生成调试符号(编译器选项-g-ggdb或类似 - 请参阅GCC Fortran手册中的调试选项)以获得更有意义的内容。但是,如果你这样做,你会发现,它只是为您指出了一些位置,可以这样做:

call mpi_send(...) 

在一些子程序或函数调用setup()

所以,在这种情况下,它不是非常有用。重要的是你应该链接适当的MPI库。通常通过调用mpif90mpifort或称为而不是gfortran的类似包装完成。请参阅您的MPI库实现的文档。