如果使用不受支持的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
可能不存在。在这种情况下,是否有替代方法可获得相同的效果? 最佳答案
我在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
关于compilation - nagfor预处理程序的用户定义错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29609305/