gfortran中对`sleep`和`sizeof` instrinsics的未定义引用

问题描述 投票:1回答:1

gfortran没有找到GNU Fortran提供的内部函数(sleep,sizeof,...):

undefined reference to `sleep_'

我已经从MinGW Installation Manager安装了mingw32-base和mingw32-gcc-fortran。

即使这个简单的代码会出现此问题:

program p
implicit none

    call SLEEP(1)

end program p

命令:$ gfortran.exe -std=f2008 .\test.f08

事实上它适用于$ gfortran.exe .\test.f08。但是,它应该与前一个一起使用。

fortran mingw gfortran
1个回答
4
投票

您使用的程序不是标准的Fortran。当您通过-std=f2008明确要求标准Fortran时,编译器不会链接非标准内部过程,因为它们不在您明确请求的标准中。

当你使用

intrinsic sleep

您会收到更明确的错误消息:

intrinsic sleep
               1
Error: The intrinsic ‘sleep’ declared INTRINSIC at (1) is not available
in the current standard settings but a GNU Fortran extension. Use an appropriate 
‘-std=*’ option or enable ‘-fall-intrinsics’ in order to use it.

因此,正如消息所示,您可以使用-fall-intrinsics来启用非标准内部过程。

© www.soinside.com 2019 - 2024. All rights reserved.