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

Files that must be redistributed with DLL application

Bruce_Barker
Beginner
863 Views

I have an application that calls a number of DLLs compiled in FORTRAN. These routines work fine in the development environment, but when I deploy the application on an end users computer, they cannot be found by the program. Clearly, Im missing some additional redistributable files needed for the program to run. With Compaq FORTRAN, I used to include the files DFORRMD.DLL and DFORRT.DLL and everything worked great. I searched the Intel site and found a reference to w_cprof_p_11.0.74_redist.zip, which supposedly contains the needed redistributables, but couldnt find a place to download them. There was also reference to running Dependency Walker to determine the needed files. I did this, but it wasnt clear what I needed to include.

Is there a location where I can get the needed files for FORTRAN V. 11.1 to make my DLLs work?
Thanks!

0 Kudos
6 Replies
DavidWhite
Valued Contributor II
863 Views
Bruce,

If you use the options /libs:static /threads(or the Runtime Multithreaded option in MSVS), then the runtime libraries are linked into your DLL and so no additional files are needed.

This makes distribution to third parties easier.

If you plan to provide the DLL's separately, then you need to ensure that they are located somewhere on the user's PATH, or update this to add the install location.

Regards,


David
0 Kudos
Steven_L_Intel1
Employee
863 Views
The redistributable installer is provided alongside the compiler downloads in the Intel Registration Center.
0 Kudos
Wendy_Doerner__Intel
Valued Contributor I
863 Views
0 Kudos
Bruce_Barker
Beginner
863 Views

David,

I like the idea of having the runtime libraries linked and I tried the settings you indicated in Studio 2008, but Im still having trouble. Listed below is the compiler setting I changed. I recompiled the code and copied the DLL to the computer where the application is being tested (Windows XP operating system). When the DLL is called, I receive the error message shown below. Also note that Im using the IMSL libraries, if that makes a difference.

Any other ideas?

0 Kudos
Wendy_Doerner__Intel
Valued Contributor I
863 Views
If you are changing your application from dynamic (using DLLs) to static (with the libraries included at link time), there maybe more changes than just changing the link type. You will need to change the call to the DLL to instead be a call to the library which will be resolved at link time instead of run time. I would suggest you read the section on "Creating Static Libraries" in the documentation.

------

Wendy

Attaching or including files in a post

0 Kudos
DavidWhite
Valued Contributor II
863 Views
Bruce,

Not sure about the IMSL libraries - possible they will need to be redistributed (check the license about this).

My settings appear similar, except I am using MSVS 2005, and the text for Runtime library says Multithreaded (/libs:static /threads). Assume thismeans the same as your settings.

0 Kudos
Reply