gfortran编译器找不到拼写错误的完整目录

时间:2016-03-30 15:56:55

标签: compilation makefile fortran gfortran

我能够制作一个比原始帖子更简单的例子。我正在尝试在Windows上使用gcc version 4.9.2 (x86_64-posix-seh-rev4, Built by MinGW-W64 project)编译fortran代码。

下面是我以前成功编译代码的批处理脚本:

  SET SRC_DIR=code
  gfortran -fopenmp -g -fimplicit-none -cpp ^
   %SRC_DIR%/globals/current_precision.f90^
   %SRC_DIR%/string/string.f90^
   ...
   %SRC_DIR%/user/MOONS.f90^
   parametricStudy.f90^
   -o main.exe
  del *.mod

输出如下:

  C:\Users\charl\Documents\GitHub\MOONS>gfortran -fopenmp -g -fimplicit-none -cpp  
  code/globals/current_precision.f90 
  code/string/string.f90 
   ...
  code/user/MOONS.f90 
  parametricStudy.f90 -o main.exe

  C:\Users\charl\Documents\GitHub\MOONS>del *.mod

然后我尝试通过更改:

将源路径从local更改为full
  SET SRC_DIR=code

  SET SRC_DIR=C:/Users/charl/Documents/GitHub/MOONS/code

但输出现在是:

  C:\Users\charl\Documents\GitHub\MOONS>gfortran -fopenmp -g -fimplicit-none -cpp
  C:/Users/charl/Documents/GitHub/MOONS/code/globals/current_precision.f90 
   ...
  C:/Users/charl/Documents/GitHub/MOONS/code/solvers/induction/init_Bfield.f90 
  C:/Users/charl/Documents/GitHub
  gfortran: error: 
  C:/Users/charl/Documents/GitHubMOONS/code/solvers/induction/init_Sigma.f90: No such file or directory

我还尝试使用变量,同样的事情发生了,所以这似乎与完整路径有关,而不是变量的使用。我有两个问题

1)由于使用完整路径导致错误的原因是什么?

2)为什么完整路径中会出现拼写错误? (“GitHubMOONS”应为“GitHub / MOONS”)

2 个答案:

答案 0 :(得分:0)

错误的原因在于SRC_DIR的设置。这必须是DOS格式,即

*SET SRC_DIR=C:/Users/charl/Documents/GitHub/MOONS/code*

应该是

*SET SRC_DIR=C:\Users\charl\Documents\GitHub\MOONS\code*

这与完整路径中拼写错误的原因相同。

在批处理文件中使用以下命令,我可以成功编译代码:

gfortran -fopenmp -g -fimplicit-none -cpp“%SRC_DIR%\ globals \ current_precision.f90”%SRC_DIR%\ string \ string.f90%SRC_DIR%\ user \ MOONS.f90 parametricStudy.f90 -o main。 exe文件

两者都有,双引号中没有双引号的文件名的完整路径应该有效。

答案 1 :(得分:0)

我的解决方案是使用相对路径作为源文件。这样做可以正常编译而不会出错。如果将来以某种方式改变,那么我将更新这篇文章。

简而言之,只需使用

即可
 SET SRC_DIR = code