Emacs gfortran编译异常退出,代码为1

时间:2019-05-11 02:51:46

标签: emacs compiler-errors mingw

我正在尝试使用gfortran编译一个简单的Fortran hello世界脚本。它可以在Windows控制台中很好地编译,但不能在Emacs中编译。这和它的环境有关吗?我没有使用任何库。任何有助于理解原因的帮助将不胜感激。

简单的“ Hello World”:

Program Hello
Print *, "Hello World!"
End Program Hello

这是使用M-x编译的编译命令:

C:\MinGW\bin\gfortran.exe C:\emacs\fortran\hello.f -o C:\emacs\fortran\hello.exe

Emacs报告此错误:

Compilation exited abnormally with code 1 at Fri May 10 18:10:15

谢谢

1 个答案:

答案 0 :(得分:0)

为简化您的编译命令,您可以将gfortran的路径添加到exec-path中,这样应该可以找到编译器(用(executable-find "gfortran")测试

(cl-pushnew "path/to/mingw/bin" exec-path :test #'equal)

您还可以在compile-command中设置默认的fortran-mode-hook,例如。要使用一些默认标志(对Windows进行修改)来编译当前文件,可以使用类似的

(add-hook 'fortran-mode-hook #'my-fortran-hook)

(defun my-fortran-hook ()
  (setq-local
   compile-command
   (format "gfortran -Wall -Wextra -fbounds-check -g -std=f95 -Ofast -o %s %s"
           (file-name-sans-extension (file-name-nondirectory (buffer-file-name)))
           (buffer-file-name))))