如果使用不支持的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文档中创建错误的信息,所以可能#error
并不存在。在这种情况下,是否有另一种方法来获得同样的效果?
发布于 2015-04-13 17:09:15
我在NAG编译器上工作。fpp的目的是在操作(和功能)方面非常轻量级。它起源于Sun;我们使用的是基于netlib的版本,该版本来自http://netlib.org/fortran/fdfpp.tgz。
fpp手册(doc/fpp.html)不支持#error
,您已经发现了这一点。
正如弗朗西夫厄斯所建议的那样,获得你想要的东西的最好方法是
program foo
implicit none
#ifdef NAGFOR
PRINT *, "Hello from nagfor"
#else
error "Compiler not supported"
#endif
end program foo
https://stackoverflow.com/questions/29609305
复制相似问题