使用英特尔Visual Fortran时如何利用预处理器变量

时间:2011-07-21 21:20:12

标签: windows preprocessor fortran

我想在Windows下编译Fortran 90(固定格式)库。但是,我无法理解预处理变量的错误。

    Say the sample file is VF_TestPreprocessor.F: 

    program VF_TestPreprocessor

    implicit Integer(A-Z)

    Parameter (TestAlpha=22,TestBeta=TestGamma)

    print *, TestBeta

    end program VF_TestPreprocessor

在Linux下,我可以使用ifort VF_TestPreprocessor.F -DTestGamma=25进行编译和运行。

但是,在Windows下,我无法使用ifort VF_TestPreprocessor.F /DTestGamma=25进行编译。错误消息为error #6592: This symbol must be a defined parameter, an enumerator, or an argument of an inquiry function that evaluates to a compile-time constant. [TestGamma]。你能帮忙分析一下这个错误吗?

1 个答案:

答案 0 :(得分:1)

看起来ifort没有运行预处理器。我没有使用ifort的经验,但this page(Google ifort preprocessor上的第一次点击)表示在Windows上,预处理程序仅在以{{1}扩展名结尾的文件上运行}。

所以,我想(至少)有两个解决方案:

  • 将文件重命名为.fpp;
  • 使用.fpp开关调用ifort。