This document describes the steps to build an Intel® MKL application with Intel® Visual Fortran Compiler XE for Windows* OS integrated with Microsoft Visual Studio* 2013
1. Intel® Visual Fortran Compiler XE for Windows* OS 15.0 or a later version
The compiler must be installed and integrated correctly with Microsoft Visual Studio* 2013.
2. Intel® MKL 11.2 or a later version
Intel® MKL is included in the Intel® Parallel Studio XE suite.
3. Microsoft* Visual Studio 2013
Step 1: Select whether you are building IA-32 or Intel® 64 application
Based on the target machine your application will run on, select:
IA-32: 32-bit application for IA-32 architecture
IA-64: 64-bit application for Intel® 64 architecture
For more information about IA-32 and Intel® 64 architectures, see this article.
When building IA-32 or IA-64 application within Microsoft VS* environment, check the Build→Configuration manager→ Active solution platform setting. It should be either “Win32" or "X64" (which corresponds to Intel® 64).
Step 2: Select the libraries to link from Intel® MKL
Use the on-line Intel® Math Kernel Library Link Line Advisor to determine which libraries your application needs to link to, based on your platform settings.
Intel® Math Kernel Library Link Line Advisor will list the libraries you need to link to from Intel® MKL
IA-32 Windows* application:
"mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib" are common libraries
Intel® 64 Windows* application: "mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib"
Step 3: How to link to Intel® MKL manually in your project
Follow these steps to add the include path, library path and Intel® MKL libraries listed by the Intel® Math Kernel Library Link Line Advisor.
1. To add the include path manually refer to the MSVS* screenshot below. Open Project → Property Pages →Fortran →General. Type/Paste the library directory in the 'Additional Include Directories' field.
2. To add the library path manually refer to the MSVS* screenshot below. Open Project → Property Pages → Linker →General. Type/Paste the library directory in the 'Additional Library Directories' field.
Make sure to check the library path and enter the correct directory:
<MKL install dir>\ia32, for IA-32 application
<MKL install dir>\intel64, for x64 application
3. To add the required libraries manually refer to the MSVS* screenshot below. Open Project → Property Pages → Linker → Additional Dependencies. Paste the libraries from the Intel® Math Kernel Library Link Line Advisor.
Step 4: Link to Intel® MKL in your project automatically - quick option (optional)
Note: Step 4 (optional) and the Step 3 are equivalent in most cases. Be sure to use only one of these options, don’t mix them.
The latest Intel® MKL versions have a single 'Build' menu in MSVS* environment. Refer to the MSVS* screenshot below. Open Project → Property Pages →Fortran → Libraries →Use Intel Math Kernel Library. Select the desired option, such as /Qmkl:parallel or /Qmkl:sequential. Once selected all of environment settings and required libraries are ready for your project. Proceed to build and run the application.
The attached zip file contains a MSVS* 2013 project (Intel® Visual Fortran Compiler XE for Windows* OS IA-32 application) for your reference. DFT_VF_sample.zip does Real 1d DFT.
- Some interface libraries (i.e. mkl_lapack95.lib mkl_blas95.lib fftw3xc_ms) are not Intel® MKL standard libraries, as such "Step 4 - quick option" does not support them. You can add those libraries manually if you need to use them.
You may encounter the following errors when building the project:
1. "fatal error LNK1104: cannot open file 'mkl_xxx.lib'"
Make sure the library is included in the library path and the path you enter in step 3 or step 4 is correct.
2. "error #7002: Error opening the compiled module file. Check INCLUDE paths. [MKL_DFTI]." Add the header file mkl_dfti.f90 in your code, for example:
! Include to build module MKL_DFTI
before the code line
Alternatively, copy the mkl_dfti.f90 file to your project's source directory and include it in your project.