首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用nagfor预处理器的用户定义错误

使用nagfor预处理器的用户定义错误
EN

Stack Overflow用户
提问于 2015-04-13 15:32:29
回答 1查看 378关注 0票数 3

如果使用不支持的fortran编译器,我将尝试中止编译。nagfor预处理器定义了宏NAGFOR,因此我编写了以下测试程序:

代码语言:javascript
运行
复制
program foo

  implicit none

#ifdef NAGFOR
  PRINT *, "Hello from nagfor"
#else
#error "Compiler not supported"
#endif

end program foo

当我使用gfortran或ifort编译时,会得到预期的错误消息。

代码语言:javascript
运行
复制
$ gfortran foo.F90
foo.F90:8:2: error: #error "Compiler not supported"

$ ifort foo.F90
foo.F90(8): #error:  "Compiler not supported"

但是nagfor给出了一个不同的错误

代码语言:javascript
运行
复制
$ nagfor foo.F90
NAG Fortran Compiler Release 5.3.1(907)
"foo.F90", line 8: error: unknown fpp directive.

我找不到任何关于如何在nagfor fpp文档中创建错误的信息,所以可能#error并不存在。在这种情况下,是否有另一种方法来获得同样的效果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-13 17:09:15

我在NAG编译器上工作。fpp的目的是在操作(和功能)方面非常轻量级。它起源于Sun;我们使用的是基于netlib的版本,该版本来自http://netlib.org/fortran/fdfpp.tgz

fpp手册(doc/fpp.html)不支持#error,您已经发现了这一点。

正如弗朗西夫厄斯所建议的那样,获得你想要的东西的最好方法是

代码语言:javascript
运行
复制
program foo

  implicit none

#ifdef NAGFOR
  PRINT *, "Hello from nagfor"
#else
  error "Compiler not supported"
#endif

end program foo
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29609305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档