Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

Release program

JohnNichols
Valued Contributor II
618 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 II
586 Views

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

Ron_Green
Moderator
582 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/

JohnNichols
Valued Contributor II
565 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,

 

Steve_Lionel
Black Belt Retired Employee
542 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.

Ron_Green
Moderator
534 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

JohnNichols
Valued Contributor II
529 Views

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

JohnNichols
Valued Contributor II
505 Views

The only dll this solution missed is 

libiomp5md.lib

I still need the dll. 

JohnNichols
Valued Contributor II
503 Views

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

andrew_4619
Honored Contributor II
482 Views

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

JohnNichols
Valued Contributor II
464 Views

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

Steve_Lionel
Black Belt Retired Employee
458 Views

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

JohnNichols
Valued Contributor II
449 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 

Steve_Lionel
Black Belt Retired Employee
441 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.

Reply