使用gdb进行gfortran调试:w_powf.c:没有这样的文件或目录

我有一个Fortran程序,我正在调试。 我有一个可变数据列表,其中一个预期变量几乎是其预期值的两倍。 所以我用调试标志编译了程序,并开始调试:程序名称是hfock

$gdb hfock (gdb) break hfock (gdb) run Starting program: /home/e/Desktop/hfock hfock Breakpoint 1, hfock () at hfock.f:16 16 ZETA1 = 2.173171 (gdb) s 17 ZETA2 = 1.188530 (gdb) s 18 WRITE (*, '( "Zeta1:", F7.4 / "Zeta2:", F7.4 )' ) ZETA1, ZETA2 (gdb) s Zeta1: 2.1732 Zeta2: 1.1885 21 PLUS=ZETA1+ZETA2 (gdb) s 22 PROD=ZETA1*ZETA2 (gdb) s 23 DIFF=ZETA1-ZETA2 (gdb) s 24 S12=8.*PROD**1.5/PLUS**3 (gdb) s __powf (x=2.58287883, y=1.5) at w_powf.c:26 26 w_powf.c: No such file or directory. 

相应的(24,25,26)代码行是:

  S12=8.*PROD**1.5/PLUS**3 T11=0.5*ZETA1**2 T22=0.5*ZETA2**2 

我认为这可能是一个数学库,或glibc相关的错误,但我不确定错误意味着什么,或如何解决它。这是fortran,为什么它调用C库? 我需要包含一个库吗? 或者安装缺少的依赖项? 完整的程序源: http : //pastebin.com/waeEFSBZ

**是Fortran指数运算符。 指数在glibc w_powf.c中实现。 Gdb在您的来源中找不到此文件。 这不是错误,而是诊断。

该错误表示您的系统上没有源文件w_powf.c 。 它显然与你的程序无关。 您可以放心地忽略该错误。

请注意,您提到的行具有运算符** ,我想这是在该文件中实现的,所以它只是告诉您无法访问该运算符的实现的源代码。