2017-09-20 22 views
0

gfortran을 사용하여 Mac의 Intel MKL 라이브러리에서 mlk_vsl.f90을 사용하는 일부 코드를 컴파일하려고합니다.
gfortran -o filename filename.f90 -I/${MKLROOT}/includegfortran에서 Intel MKL 모듈을 사용하는 코드 컴파일

을하고이 오류를 얻을 :

나는 다음과 같은 일을 해요

"Can't open module file 'mkl_vsl_type.mod" for reading at (1): No such file or directory" 

나는 내가 .mod 파일을 생성 할 필요가 있음을 알고,하지만 난 방법을 잘 모르겠습니다.

+0

'.mod' 파일을 만들 인터페이스가 포함 된 MKL 소스가 있습니까? – francescalus

+0

mkl_vsl.f90에는 무엇이 들어 있습니까? 'mkl_vsl_type' 모듈을 포함하고 있습니까? MKL에 대한 정확한 연결 지침은 인텔 웹 사이트에 있습니다. 여러 옵션을 선택할 수 있으며 사이트에서 올바른 명령을 제공합니다. –

답변

0

컴파일 할 때 올바른 길을 걷고 있습니다 (-c을 추가하는 경우). 몇 가지 제안 :

  1. (당신이 당신의 메인 프로그램을 컴파일 할 때 자동으로 생성 .MOD 파일)을 올바르게 mkl_vsl 모듈을 컴파일 gfortran을 얻기 위해 필요한 시도 -fno-range-check를 추가,
  2. MKLROOT 설정되어 무엇을 알고하지
  3. , 여분의 백 슬래시가있을 수 있습니다. 시도해보십시오. -I${MKLROOT}/include

그러나 링크하려면 추가 라이브러리가 필요할 수 있습니다. 연결하는 방법을 보는 가장 쉬운 방법은 mkl_vsl을 사용하는 소스 파일이있는 mkl/examples/vslf/source의 MKLROOT 디렉토리에있는 예제 중 하나를 보는 것입니다. mkl/examples/vslf에는 실행 파일을 생성하고 링크 행을 인쇄하기 위해 실행할 수있는 makefile이 있습니다. 자세한 내용은 make help을 사용하십시오. 예를 들어, gfortran 및 정적 연결을 사용하여 vslssort.f를 컴파일하려면 make libintel64 compiler=gnu function=vslssort. 단 두 가지주의 사항을주의하십시오. 링크 행은 libmkl_gnu_thread.a 대신 libmkl_intel_thread.a을 사용하고, 링크하기 전에 작성해야하는 다른 디렉토리에 작성된 .mod 파일을 넣기 위해 -J 플래그를 사용합니다.