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

Distribute compiiled DLL without ifort redistributable libraries?

James_W_4
Beginner
349 Views

Hi,

I am building a fortran DLL that I need to deliver to others. I would like to not require that the person receiving it have the intel libraries. Is there a compiler option so that I can statically link the libraries? (libmmd.dll and libifcoremd.dll)

 

Thank you,

James

0 Kudos
4 Replies
James_W_4
Beginner
349 Views

Note: I am building the DLL using visual studio 2013 professional with the 2016 intel compiler

For some reason I do not have permission to edit my post

0 Kudos
Kevin_D_Intel
Employee
349 Views

Try setting under project settings Fortran > Libraries > Runtime Library to Multithreaded. From a command-line use: /libs:static /threads

Fortran 16.0 UG has advice/instructions on static linking for multithreaded apps with libiforemd.lib, https://software.intel.com/en-us/node/581357.

0 Kudos
jimdempseyatthecove
Honored Contributor III
349 Views

You may have an issue if your application uses components of IVF that are only distributed as DLL (OpenMP, MPI, ???).

Jim Dempsey

0 Kudos
Steven_L_Intel1
Employee
349 Views

jimdempseyatthecove wrote:

You may have an issue if your application uses components of IVF that are only distributed as DLL (OpenMP, MPI, ???).

Yes - OpenMP and coarray support is DLL-only.

I'll also caution that there could be issues if the calling program built using Intel Fortran and linked to the DLL libraries (which is the default). In my view, building a Fortran DLL against the static libraries is safe only when you know the caller isn't going to be Fortran.

0 Kudos
Reply