- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You may have an issue if your application uses components of IVF that are only distributed as DLL (OpenMP, MPI, ???).
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page