如何使用ifort编译器编写makefile?

时间:2014-06-20 03:04:06

标签: compiler-errors makefile fortran intel-fortran

我正在使用makefile代码(下面),使用Fortran77编译器让我满意,但我试图与英特尔Fortran编译器(IFORT)合作使用相同的代码,但它根本不能正常工作。 / p>

有人可以就改进代码提出任何建议吗?

OBJ = change.o twopt.o ddmath.o cklib.o
f77 = pgf77 
opt = -O4        
.f.o:   
        $(f77) $(opt) -c $*.f
stagdri: $(OBJ)
        pgf77  -o change.exe $(OBJ)
        strip change.exe

1 个答案:

答案 0 :(得分:2)

这是一个非常简单的makefile,唯一真正需要做的就是将f77 = pfg77更改为f77 = ifort。我不确定ifort是否会喜欢-O4选项(O3是ifort文档中的最高级别),因此您可以更改它以确保获得优化。

还有另外两个与makefile无关的问题可能导致问题。

  1. 在命令行上运行的intel编译器要求您运行脚本来设置intel环境。在制作项目之前,请确保您正在运行该脚本。在linux上,对于64位环境和默认安装路径,这是source /opt/intel/bin/compilervars.sh intel64

  2. ifort在某些方面可能非常挑剔,并拒绝接受pgf或gfortran接受的代码。在适用的情况下,您可能需要收紧代码或查找编译器参数以放宽编译器。

  3. 为了提供超出这些一般性的任何特定帮助,需要提供编译器或make产生的实际错误。