【问题标题】:How to write makefile using ifort compiler?如何使用 ifort 编译器编写 makefile?
【发布时间】:2014-06-20 03:04:06
【问题描述】:

我使用的是 makefile 代码(如下),它在 Fortran77 编译器上运行得令我满意,但我尝试与英特尔 Fortran 编译器 (IFORT) 合作使用相同的代码,但它根本无法正常运行。

谁能提供改进代码的任何建议?

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

【问题讨论】:

  • 嗯...你尝试了什么?当你尝试它时发生了什么?
  • 您可以将您正在使用的当前编辑的makefile添加到您的帖子中吗?

标签: compiler-errors makefile fortran intel-fortran


【解决方案1】:

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

还有两个与 makefile 无关的问题可能会导致您出现问题。

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

  2. ifort 在某些方面可能非常挑剔,并拒绝 pgf 或 gfortran 接受的代码。您可能需要收紧代码或找到编译器参数以放松编译器(如果适用)。

要提供超出这些一般性的任何具体帮助,需要提供编译器或 make 产生的实际错误。

【讨论】:

  • 感谢您提供我的信息。但我仍然无法让它工作......当我“make -f makexx”时,它显示消息:O4 -c check.f make: O4: Command not found make: [check.o] Error 127 (ignored) ifort -o check.exe check.o twopt.o ddmath.o cklib.o make: ifort: Command not found make: *** [stagdri] 错误127 不知道是不是编译器的问题?跨度>
  • @user3758608 这些错误看起来像是你弄乱了 f77 变量(这将有助于查看你正在使用的实际 makefile)。第二个错误是由于没有找到编译器。您是否初始化了英特尔环境(请参阅我的答案中的第 1 条)?
猜你喜欢
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 1970-01-01
  • 1970-01-01
  • 2014-10-22
相关资源
最近更新 更多