我正在进行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
答案 0 :(得分:1)
错误表示您的系统上没有源文件 w_powf.c 。它显然与你的程序没有关系。您可以放心地忽略该错误。
请注意,您提到的行有**
运算符,我想这是在该文件中实现的,所以它只是告诉您无法访问该运算符的实现的源代码
答案 1 :(得分:1)
**
在Fortran指数运算符中。指数是在glibc w_powf.c中实现的。 Gdb无法在您的来源中找到此文件。这不是错误,而是诊断。