Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

static executables in 2015

Bruce_Weaver
Beginner
576 Views

Hi,

I need to run multiple copies of my code on my computer while compiling & linking.  It appears that in Fortran 2015 I can no longer use portlib to make portable/static code.  I get entry point errors in the MKL DLL which I suspect is just the start of my troubles with multi-threaded OpenMP & MKL code. What is the easiest way to make code to move around my computer?  I read the documentation but it seemed way too complex for what I'm trying to do.

0 Kudos
4 Replies
TimP
Honored Contributor III
576 Views

Apparently, the default changed with the 2015 release, and you would need to select /MT one way or another to get the previous behavior.  It didn't occur when I first saw your post that this might be your question.

0 Kudos
Steven_L_Intel1
Employee
576 Views

The default changed in 2013 SP1 (14.0). You can still link statically if you want. In Visual Studio, the property is Fortran > Libraries > Runtime Library > Multithreaded (not Multithread DLL). Most of the Fortran libraries are available in static form - OpenMP and coarray support are DLL only.

Perhaps the real problem here is that as of 2013 SP1, the Intel performance libraries (MKL, TBB, IPP) aren't added to PATH by default and you have to add the paths to their DLLs yourself. For Fortran, that's just MKL. Moving programs around on a computer with Fortran installed is not a problem - the only issue is when you take the executable to another computer.

0 Kudos
TimP
Honored Contributor III
576 Views
The performance library path is set when setting up to compile. Later if you run without that set-up you would need path set-up as Steve said.
0 Kudos
Steven_L_Intel1
Employee
576 Views

It's set up to build, yes. But the paths to the MKL DLLs are not added to PATH when the compiler is installed.

0 Kudos
Reply