gfortran 编译器给出分段错误

gfortran compiler gives segmentation fault

我在 运行 fortran 代码上遇到了问题,所以我在这里尝试了一个示例代码: https://gcc.gnu.org/onlinedocs/gcc-8.4.0/gfortran/ICHAR.html

program read_val
  integer value
  character(len=10) string, string2
  string = '154'

  ! Convert a string to a numeric value
  read (string,'(I10)') value
  print *, value

  ! Convert a value to a formatted string
  write (string2,'(I10)') value
  print *, string2
end program read_val

我做到了

gfortran -o hello3 hello3.f -g3 -fcheck=all -Wall -fbacktrace

它没有给我任何警告或错误。然而,

./hello3

失败
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x103eab35c
#1  0x103eaa6f3
#2  0x7fff7376cb5c
#3  0x103fef340
#4  0x103fefd2d
#5  0x103fed78f
#6  0x103ea5cca
#7  0x103ea5e96
Segmentation fault: 11

不知何故,我觉得我的 gfortran 编译器无法正常工作。我不熟悉 Mac OS,感觉 Xcode/Anaconda/etc 搞砸了我的系统。

我正在使用 GNU Fortran(自制 GCC 9.3。0_1)9.3.0,MacOS Mojave 10.14.6。

gfortran 路径是 /usr/local/bin/gfortran 目前我的 gfortran 来自 'brew install gcc'。我也尝试从 https://github.com/fxcoudert/gfortran-for-macOS/releases 手动下载,但也没有用。

据我所知代码没有问题,它符合要求并在我的系统上正确运行

ian@eris:~/work/stack$ cat busted.f90 
program read_val
  integer value
  character(len=10) string, string2
  string = '154'

  ! Convert a string to a numeric value
  read (string,'(I10)') value
  print *, value

  ! Convert a value to a formatted string
  write (string2,'(I10)') value
  print *, string2
end program read_val
ian@eris:~/work/stack$ gfortran -std=f2008 -Wall -Wextra -fcheck=all -g busted.f90 
ian@eris:~/work/stack$ ./a.out
         154
        154

据我所知,您对 gfortran 的灌输已损坏。但请始终使用隐式 None