我想使用gfortran
编译一些使用Mac上英特尔MKL库中mlk_vsl.f90
的代码。
我正在做以下事项:
gfortran -o filename filename.f90 -I/${MKLROOT}/include
我收到此错误:
"Can't open module file 'mkl_vsl_type.mod" for reading at (1): No such file or directory"
我知道我必须创建.mod
文件,但我不确定如何。
答案 0 :(得分:1)
您正在进行编译(如果添加-c
)。一些建议:
-fno-range-check
,这是让gfortran正确编译mkl_vsl模块所需的(在编译主程序时自动创建.mod文件)-I${MKLROOT}/include
但是,对于链接,您可能需要其他库。查看如何链接的最简单方法是查看MKLROOT目录mkl/examples/vslf/source
中的一个示例,其中包含使用mkl_vsl的源文件。在mkl/examples/vslf
中,您可以运行makefile来生成可执行文件并打印链接行。使用make help
获取更多信息。例如,使用gfortran和静态链接编译vslssort.f:make libintel64 compiler=gnu function=vslssort
。请注意两个警告:链接行使用libmkl_intel_thread.a
而不是libmkl_gnu_thread.a
,它使用-J标志将创建的.mod文件放在必须在链接之前创建的不同目录中。