我正在使用 gfortran 编译一个包含十几个模块的大程序。每当代码中出现错误时,程序都会生成一条错误消息,其中包含发生错误的行号以及该行所属模块的完整路径。例如:
At line 1775 of file C:\temp\test.f90 (Unit = 200, file=' ')
Fortran Run time error: File '*' does not exist
我的问题是如何阻止程序列出有问题的模块的完整路径,而是让它只报告发生错误的模块名称。
gfortran
嵌入在编译阶段用于访问源文件的路径。例如,如果您使用文件的完整路径进行编译,您将在调试输出中获得完整路径。如果您使用相对路径编译,您将在输出中获得相对路径:
~/tests[520]$ gfortran -o test.x test.f90
~/tests[521]$ test.x
At line 3 of file test.f90 (unit = 200, file = '')
Fortran runtime error: File '' does not exist
~/tests[522]$ gfortran -o test.x ./test.f90
~/tests[523]$ test.x
At line 3 of file ./test.f90 (unit = 200, file = '')
Fortran runtime error: File '' does not exist
~/tests[524]$ gfortran -o test.x ~/tests/test.f90
~/tests[525]$ test.x
At line 3 of file /home/username/tests/test.f90 (unit = 200, file = '')
Fortran runtime error: File '' does not exist
将编译命令更改为仅使用相对路径访问源。