如果使用不受支持的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
可能不存在。在这种情况下,是否有另一种方法可以获得相同的效果?
答案 0 :(得分:1)
我在NAG编译器上工作。 fpp在操作(和功能)方面非常轻量级。它起源于太阳;我们使用的是基于http://netlib.org/fortran/fdfpp.tgz的netlib版本的版本。
fpp手册(http://www.nag.co.uk/nagware/np/r60_doc/fpp.html)未将#error
文档视为您所支持的文档。
正如francescalus建议的那样,实现你想要的东西的最好方法是使用
的内容。program foo
implicit none
#ifdef NAGFOR
PRINT *, "Hello from nagfor"
#else
error "Compiler not supported"
#endif
end program foo