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

Files that must be redistributed with DLL application

Bruce_Barker
Débutant
1 023 Visites

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 Compliments
6 Réponses
DavidWhite
Précieux contributeur II
1 023 Visites
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 Compliments
Steven_L_Intel1
Employé
1 023 Visites
The redistributable installer is provided alongside the compiler downloads in the Intel Registration Center.
0 Compliments
Wendy_Doerner__Intel
Précieux contributeur I
1 023 Visites
0 Compliments
Bruce_Barker
Débutant
1 023 Visites

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 Compliments
Wendy_Doerner__Intel
Précieux contributeur I
1 023 Visites
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 Compliments
DavidWhite
Précieux contributeur II
1 023 Visites
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 Compliments
Répondre