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

Required run-time libraries for Windows DLL

Jan_H_
Beginner
880 Views

Hello!

I'm building a Fortran Windows DLL with the Intel Fortran Compiler XE 13.1 integrated in MS Visual Studio 2012. This DLL will be part of a Windows application developed in association with a third party. However, we experience some problems concerning the DLL after installing the application (version conflicts, error messages saying 'DLL not found', ...). So, I have a few questions:

1. Would it be possible build the DLL statically linked with the required Windows DLL's and just copy 'my' DLL to the target system? Would this be a wise thing to do? What compiler settings are required then?

2. I know there are some merge modules available in the 'redist' folder of Composer XE 2013. I assume the .msm file to use is dependent on the target system (32 or 64 bit)? Can these modules be applied to Windows XP as well?

3. Would it be possible to copy the required Windows DLL's manually? If so, which DLL's are required?

I hope your answers will get me on the right track...

 

Many thanks in advance,

Jan

0 Kudos
3 Replies
Steven_L_Intel1
Employee
880 Views

The important question here is: will there be any Intel Fortran in the executable linked to your DLL? If yes, then it is required that the EXE and your DLL both link to the DLL libraries. If not, then you can link the DLL to the static libraries (but if you use OpenMP, that option is not available.) To do this, set the project property Fortran > Libraries > Use Runtime Library to "Multithreaded".

Otherwise, you can use the .msm on XP, as far as I know. We also offer executable installers - see What do I need to deploy my Fortran application on a system where the compiler is not installed? for details.

You can also copy individual DLLs, but keep in mind that they have to be in a folder in PATH or in the folder of the EXE- you can't just put them alongside your DLL.

0 Kudos
Jan_H_
Beginner
880 Views

Steve, thank you for your quick response.

No, there won't be any Fortran in the executable which makes it possible to statically link my DLL.Still, two questions remain:

  • Is this a wise thing to do?
  • Will a statically linked DLL run on any Windows version?

Anyway, I will try your suggestion(s) and report any progress.

Jan

0 Kudos
Steven_L_Intel1
Employee
880 Views

It's ok to do if there won't be Fortran in the executable. There are some features that require the DLLs, though, such as OpenMP and coarrays.  It should run on Windows XP and later, but you'll need to test.

0 Kudos
Reply