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

Creating portable exe with Visual Studio 2019 and Fortran

gverneng
Beginner
1,446 Views

Dear All,

I'm a new in using Visual Studio 2019 and Fortran. I'm trying to compile some of my old codes (this is ok, no errors) but when I try to use the exe it seems that lots of libs are missing (libmmd.dll, libifcoremd.dll, libifportMD.dll, svml_dispmd.dll). 

Reading some post it seems to be a problem with static libs inclusion but I do not find the correct option in VS2019 (or I have not understood the problem...). Can someone suggest how to solve this problem?

 

Many thanks!

0 Kudos
4 Replies
mecej4
Honored Contributor III
1,435 Views

From the list of missing DLLs, it appears that you may build your application to use dynamic libraries. If that is what you want, the runtime DLLs need to be available on the development system (to enable testing the built programs and DLLs) and also on the end users' systems. If, on the other hand, you wanted to build using static libraries, specify that choice through compiler options at the command line or settings in Visual Studio.

You may need to install the Fortran runtime package. Choose "Runtime Versions", and then pick the installer relevant to your operating system.

0 Kudos
andrew_4619
Honored Contributor II
1,425 Views

Is that a debug build? All the lib names have a D on the end of the name.  I don't believe debug libs are accessible if you run outside the Visual Studio environment.

0 Kudos
mecej4
Honored Contributor III
1,419 Views

Andrew, the 'D' may stand for 'Dynamic' or 'Debug', and several combinations have been used. For instance, I have libifcore.lib, libifcoremd.lib, libifcoremdd.lib, libifcoremt.lib, libifcorert.lib, libifcorertd.lib in my OneAPI compiler installation. Of these, the third and sixth are debug libraries. Similar conventions are used in the VC libraries.

0 Kudos
Steve_Lionel
Honored Contributor III
1,406 Views

"md" in the DLL name refers to the /MD option to specify linking against the DLL libraries - the convention isn't uniformly applied. Debug libraries have an extra d on the end and indeed are not available outside of the VS environment.

0 Kudos
Reply