mpif90 -v不会使用标志openmp创建目标文件

时间:2013-04-18 09:23:53

标签: compilation mpi gfortran

我正在使用mpif90编译第三方软件,在我的例子中是gcc的mpi版本。该软件包附带一个makefile。编译目标文件后,makefile使用ar创建存档,但由于没有输入目标文件,因此失败。实际上,我试图用

手动编译目标文件(.o)
mpif90 -lmkl_gf -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -openmp -O3  -DMPI -c a.f90

并且未创建a.o,而是创建.mod文件。我对fortran没有多少经验,我有点困惑,因为-c标志应该创建一个对象,不应该吗?

我已经验证gfortran确实会创建目标文件,如果我删除了标志openmp


注意:

mpif90 -v
gcc version 4.4.3

操作系统:Ubuntu 10.04.4 LTS

2 个答案:

答案 0 :(得分:1)

我将旗帜openmp改为fopenmp

http://gcc.gnu.org/onlinedocs/gfortran/OpenMP.html

答案 1 :(得分:0)

如果有人在将来遇到这个问题... OP使用的标志特定于intel fortran编译器,而mpif90包装器似乎正在使用gfortran编译器。使用OpenMP和gfortran的正确标志是-fopenmp,库是-lgomp。可以将intel库与不同的供应商编译器一起使用,但最容易与一个供应商合作。