- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【精选】fortran常见错误
FAQ 之 常见错误
2014-02-02 13:45:35 来源:Fcode 研讨团队 评论:2 点击:4419
本文从编译错误,链接错误,运行时错误,计算结果错误等四个方面介绍了常见的错误及
解决思路。适合初学者阅读。
首先应该明确:错误有哪几种?我们当前遇到的是何种错误?
阐述这些问题前,我们先讨论一下常规的应用程序开发的过程:
1编写代码,使用一个或多个源代码文件。
2对第一步的每一个源代码文件执行编译操作。得到一个或若干个目标代码。
3将目标代码,运行时库(Run-time Library )和其他使用到的函数库链接起来。得到一
个可执行文件(EXE 或其他)
4编写程序的说明书,必要的(输入)数据文件
5将上述得到的结果发布给用户。(发布的方式可以是刻录成光盘,销售,放在网站上
供别人下载,或者其他)
6用户得到程序后,运行,输入数据,得到计算结果。
对于很多 Fortran 程序员来说,可能用户就是自己,也可能仅仅是自己教研室的同事同学。
所以第 4 ,5 ,6 步骤很多时候不明显。而如果使用集成开发环境(IDE )进行开发,第1 ,
2 ,3 步骤又可以一键完成。因此,很多初学者就认为,写程序就是:输入代码,运行,得
到结果。这样的理解太狭义。
不管我们面对什么使用者来写代码,程序开发应该是上述的过程。我们的编译器,编译环
境,也是为这个过程而设计的。
于是,我们将错误分为四种:
一. 编译错误(发生在第 2 步)
编译错误,一般是源代码书写格式不正确,不符合语法要求。
二. 链接错误(发生在第 3 步)
链接错误,一般是源代码结构不完整,运行时库或函数库使用不合理。
三. 运行时错误(发生在第 6 步)
运行时错误,一般是执行代码时,遇到了事先未料及的错误。比如内存不足了,磁盘空
间不够了,输入文件格式不对了,输出文件写入失败了等等。
四. 计算结果不符合预期(程序代码不规范,或不符合你的设想)
计算结果不符合预期,可能性就很多了。语法与你的想法不一致,超出函数库的适用范
围,执行流程控制不当等等。
这四种错误,其排查难度依次增大。也就是,编译错误最容易排查和修改,而计算结果不
正确,最让人头疼。
不管是阅读本文 ,还是在网络上求助,抑或是与其他程序员交流。首先一定要弄清楚,自
己遇到的,是哪一种错误。如你使用的是IDE 方式开发,具体不知道是第一种还是第二种
错误,应该尝试手动编译代码,手动链接程序,看错误发生在哪一步。使用一键 Build 可
能会让初学者搞不清楚。
对于前三种错误,一定要找到错误提示,这对于你解决问题至关重要!
另外需要说明的是,对于同样的错误,不同的编译器给出的提示可能也是不一样的。下面
都以 Compaq Visual Fortran 和 Intel Visual Fortran 举例。其他编译器提示应该类似。
一. 编译错误
编译错误经常让初学者感到恐怖,因为动辄几十几百乃至上千个错误。然而实际上,错误
可能并没有那么多。这是因为编译器对代码进行构析,遇到错误后,会严重影响接下来的
分析,导致将本来正确的写法认为是错误。
所以,对于编译错误,一定先解决第一个。然后重新编译,然后再解决新的第一个。直到
顺利编译为止。
编译错误,在 IDE 环境下一般可通过双击切换到错误所在行。在命令行下也会显示错误所
在的行数。
Q0001: 【CVF】Severe: Invalid argument , Error executing df.exe
编译错误提示类似于:
f90: Severe: Invalid argument
... file is C:\?D??\fcode.f90
Error executing df.exe
原因:这是由于 Compaq Visual Fortran 不支持中文路径下的源代码文件。源代码文件名作
为参数(argument )传递给编译器(df.exe )被认为是非法的(Invalid 因为含有中文)。
解决:将源代码文件放入英文路径下重新编译。
Q0002: 【CVF / IVF 】Error spawning df.exe 或 The Fortran compiler (ifort.exe) cannot be found.
原因:这多半是由于编译器安装不合适造成的,或者安装时未设置合理的环境变量。执行
编译器( df.exe 或 ifort.exe ) 失败或根本找不到。
解决:重新安装编译器(win7/win8 下请不要使用 CVF ),注意安装时如选择是否设置环
境变量,选 Yes。
Q0003: 【CVF
文档评论(0)