【发布时间】:2017-03-16 03:04:41
【问题描述】:
如果使用了不受支持的 fortran 编译器,我将尝试中止编译。 nagfor预处理器定义了宏NAGFOR,所以我写了如下测试程序:
program foo
implicit none
#ifdef NAGFOR
PRINT *, "Hello from nagfor"
#else
#error "Compiler not supported"
#endif
end program foo
当我使用 gfortran 或 ifort 编译时,我得到了预期的错误消息
$ gfortran foo.F90
foo.F90:8:2: error: #error "Compiler not supported"
$ ifort foo.F90
foo.F90(8): #error: "Compiler not supported"
但是 nagfor 给出了不同的错误
$ nagfor foo.F90
NAG Fortran Compiler Release 5.3.1(907)
"foo.F90", line 8: error: unknown fpp directive.
我找不到任何关于如何在 nagfor fpp documentation 中创建错误的信息,所以 #error 可能不存在。在这种情况下,是否有其他方法可以达到相同的效果?
【问题讨论】:
-
fpp似乎不知道#error指令。在手册中查看您的其他可能性。 -
一种可能的方法是放置一些明显的垃圾,编译器本身会致命地拒绝。不理想(所以不是回答质量),但除非你有大量的预处理(并且想要尽早中止)它可能有相同的最终结果。 [而且,致命的中止是不可移植的。]
标签: compilation fortran preprocessor nag-fortran