Thank you Tony for the information. I still had some problem.

I tried building Julia (release-0.5) using MinGW following the instructions 
here: 
https://github.com/JuliaLang/julia/blob/master/README.windows.md

The only difference is, after creating the Make.user file, I edited it 
using a text editor and added the options to use MKL, so the complete 
Make.user now looks like:
override CMAKE=/C/CMake/bin/cmake.exe
USE_INTEL_MKL = 1
USE_INTEL_MKL_FFT = 1
USE_INTEL_LIBM = 1

The addition of the above lines is per build instructions about MKL 
at https://github.com/JuliaLang/julia, except that I removed "USEICC = 1" 
and "USEIFC = 1" since I am not using Intel compiler. But I do have Intel 
MKL with the free Community License installed on my computer at "C:\Program 
Files (x86)\IntelSWTools\compilers_and_libraries_2017.0.109\windows\mkl"

After I started the build with "make -j 3", the build would run for a while 
then stop with 
make: *** [Makefile:81: julia-deps] Error 2

I went through the messages and found this to be the most suspicious for a 
root cause:
c:/users/zpan/documents/github/julia/usr/x86_64-w64-mingw32/sys-root/mingw/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
 
cannot find -lmkl_rt

So I realized that MinGW was not able to find the MKL libraries. I tried 
the following 2:

(1) Copied all the 17 .lib files from "C:\Program Files 
(x86)\IntelSWTools\compilers_and_libraries_2017.0.109\windows\mkl\lib\intel64_win"
 
to "C:\mkllib" (so the path does not contain a space), then I did
$ export MKLLIB=/C/mkllib

(2) Copied all the 17 .lib files to 
"C:\Users\zpan\Documents\GitHub\julia\usr\lib"

But I was still getting the same Error 2 in the end, and I could still find 
the error message saying "cannot find -lmkl_rt".  Well, mkl_rt.lib was 
indeed part of the 17 files, which are:

mkl_blas95_ilp64.lib
mkl_blas95_lp64.lib
mkl_core.lib
mkl_core_dll.lib
mkl_intel_ilp64.lib
mkl_intel_ilp64_dll.li
mkl_intel_lp64.lib
mkl_intel_lp64_dll.lib
mkl_intel_thread.lib
mkl_intel_thread_dll.l
mkl_lapack95_ilp64.lib
mkl_lapack95_lp64.lib
mkl_rt.lib
mkl_sequential.lib
mkl_sequential_dll.lib
mkl_tbb_thread.lib
mkl_tbb_thread_dll.lib

I am currently trying the command "make install" to build it without 
parallel option - this is very slow but I can see the messages in proper 
order.

Did I miss something to let the linker see the .lib files? Any help greatly 
appreciated! 



On Monday, September 12, 2016 at 3:59:19 PM UTC-5, Tony Kelman wrote:
>
> Intel compilers on windows are MSVC style, which our build system is not 
> really set up to handle. There is experimental partial support (search for 
> "MSVC support tracking issue" if you're interested) but it would really 
> require rewriting the build system to use cmake to work smoothly.
>
> You can build Julia from source with mingw but direct the build system to 
> use an mkl library instead of building openblas from source. At one point 
> mkl on windows didn't export gfortran style naming conventions for blas and 
> lapack functions, but recent versions do last I checked. Could even be able 
> to switch from an existing Julia binary by rebuilding the system image.
>

Reply via email to