Macos 编译将“英特尔MKL”模块与gfortran结合使用的代码
我想使用Macos 编译将“英特尔MKL”模块与gfortran结合使用的代码,macos,fortran,gfortran,intel-mkl,Macos,Fortran,Gfortran,Intel Mkl,我想使用gfortran编译一些使用Mac上英特尔MKL库中的mlk_vsl.f90的代码 我正在做以下工作: gfortran-o filename.f90-I/${MKLROOT}/include 我得到了这个错误: "Can't open module file 'mkl_vsl_type.mod" for reading at (1): No such file or directory" 我知道我必须创建.mod文件,但我不确定如何创建。您的编译方法正确(如果添加-c)。一些建议:
gfortran
编译一些使用Mac上英特尔MKL库中的mlk_vsl.f90
的代码
我正在做以下工作:gfortran-o filename.f90-I/${MKLROOT}/include
我得到了这个错误:
"Can't open module file 'mkl_vsl_type.mod" for reading at (1): No such file or directory"
我知道我必须创建
.mod
文件,但我不确定如何创建。您的编译方法正确(如果添加-c
)。一些建议:
-fno range check
,这是使gfortran正确编译mkl_vsl模块所必需的(.mod文件在编译主程序时自动创建)-I${MKLROOT}/include
然而,为了链接,您可能需要额外的库。查看如何链接的最简单方法是查看MKLROOT dir
mkl/examples/vslf/source
中的一个示例,其中包含使用mkl_vsl的源文件。在mkl/examples/vslf
中有一个makefile,您可以运行它来生成可执行文件并打印链接行。使用生成帮助
了解更多信息。例如,要使用gfortran和静态链接编译vslssort.f,请执行以下操作:make libintel64 compiler=gnu function=vslssort
。请注意两个注意事项:链接行使用libmkl\u intel\u thread.a
而不是libmkl\u gnu thread.a
,并且它使用-J标志将创建的.mod文件放在链接之前必须创建的不同目录中。是否有包含接口的MKL源代码,从中创建.mod
文件?mkl_vsl.f90包含哪些内容?它是否包含mkl\u vsl\u类型
模块?请注意,有关MKL的确切链接说明,请参见英特尔网站。你可以选择几个选项,网站会给你正确的命令。