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

Release program

JohnNichols
Valued Contributor III
967 Views

I have magni.exe that runs in debug mode on my computer, Dell Windows 10.  I sent the exe to a student to use and they cannot run the program they are missing DLL's

 

I compile in release mode and get that the linker cannot find external symbols for PARDISO and one other. 

So reading my handy dandy forum - I find the need it appears to statically link libraries.  Magni uses MKL - Pardiso etc..  I check the link website and it says

mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib

add these 

It is still in release mode and now the errors disappear. 

1. What did I do -- in reality 

2. Can I just now send the magni release to the student as it is 58MB and the debug is 11MB?

3. Do I need to send other stuff?

Interestingly these are engineering students who have never used Notepad or Notepad++ 

JMN

0 Kudos
13 Replies
JohnNichols
Valued Contributor III
935 Views

Is it the Visual C++ Redistributes that I need to send with a Fortran Program?

0 Kudos
Ron_Green
Moderator
931 Views

You may want to use a tool like Depends to examine your .exe and see what, if any, external DLLs it depends upon.  http://dependencywalker.com/

0 Kudos
JohnNichols
Valued Contributor III
914 Views

I installed Windows 10 on a NUC on an old HDD - no idea how slow these are -- and then I copied the program on and tried to run it.  

I ended up needing 4 DLLs from the Intel Shared Folder and the MS Runtime.  

I put those into the folder on the fresh windows with the program and they worked.  

Is there anyway to link in those DLLs,  I could not find lib versions of them on the main computer.  Capture.PNG

Interesting in '88 when I sent Fortran MS programs to our Melbourne Office they only needed the exe,

 

0 Kudos
Steve_Lionel
Honored Contributor III
891 Views

All but the OpenMP library are available as static libraries and will be used when you change the compiler libraries setting to "Multithreaded (/MT)". It's been about six or seven years since the default changed to DLL linking.

I strongly recommend against copying individual language support DLLs. Install the redistributables package instead.

0 Kudos
Ron_Green
Moderator
883 Views

In Project Properties

  Fortran

      Libraries   -> Runtime Library: Debug Multithreaded /libs:static /threads /dbglibs

 

the key option is /libs:static

this will cause the app to pull in the static .lib versions of the Intel Runtime libs.   Caveat:  I'm a Linux/mac person and my confidence in this advice is 90% only

0 Kudos
JohnNichols
Valued Contributor III
878 Views

Thank you -- I will try that option -- it is not simple giving a 100 students a program to run. 

0 Kudos
JohnNichols
Valued Contributor III
854 Views

The only dll this solution missed is 

libiomp5md.lib

I still need the dll. 

0 Kudos
JohnNichols
Valued Contributor III
852 Views

Sorry - any idea if I can include it in the exe?

0 Kudos
andrew_4619
Honored Contributor II
831 Views

OpenMP is dll only. If you build with OMP or with /Qparallel  (auto parallelisation) you need some omp dll's

0 Kudos
JohnNichols
Valued Contributor III
813 Views

I am lost, I cannot see how OPENMP is turned on

0 Kudos
Steve_Lionel
Honored Contributor III
807 Views

Do you use MKL or IMSL? If so, you need OpenMP.

0 Kudos
JohnNichols
Valued Contributor III
798 Views

We are using Pardiso - from MKL

So how do I get a student to install the program on a computer that does not have VS or Intel FOrtran 

that needs the OMP 

0 Kudos
Steve_Lionel
Honored Contributor III
790 Views

Intel® oneAPI standalone component installation files

Runtime Versions > Windows > Intel Fortran Compiler Classic Runtime for Windows

Student must run this first to install the DLLs.

0 Kudos
Reply