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

Using Fortran with MS-Access: Fortran DLL not found

hans_lochbihler
Beginner
1,585 Views

Hi!

I cannot run my program (MS-Access program which invokes a Fortran DLL compiled by Intel 10.1) on othercomputers without installing there theIntel compiler. On my computer having installed the intel compiler it works fine.I figured out that Fortran DLL invokes the following Intel DLLs: libmmd.dll, libifcoremd.dll, libguide40.dll. But, it was not sufficient to copy those files onto the target system. What I have todo for running an own developed Fortran code on other computers without intel compiler? Thanks for help!

Regards, Hans

0 Kudos
6 Replies
Steven_L_Intel1
Employee
1,585 Views
You probably need to install the Microsoft Visual C++ runtime libraries on the other system. If you're building with VS2005, use this and for VS2008, this.
0 Kudos
hans_lochbihler
Beginner
1,585 Views

Dear Steve!

Thanks for that information. But, I guess that the problem comes from the Intel compiler. When I install the intel compiler on the target machine, the problem vanishes. By the way, the problem also vanishes, when I compile the fortran sources with myvery old LF90 Lahey compiler. The target systemonly needsone additional DLL from the Lahey compiler which can be copied by hand intothe same folder of the fortran DLL.Is there any similar solution for the Intel compiler?

Regards, Hans

0 Kudos
Steven_L_Intel1
Employee
1,585 Views
When you installed Intel Fortran, you would also have installed Visual Studio, either separately or as part of the Fortran install. This installs additional DLLs from Visual C++ that are needed when you run a DLL-linked application.

You can download Dependency Walker onto the target system and examine your program with it to see what it finds.

If you are moving a DLL to another system, it is not sufficient to move run-time DLLs to the DLL's folder, even for Lahey. The run-time DLLs have to be in one of the places Windows will look for it, which includes the EXE folder, the current folder, Windows, WindowsSystem32 or directories on the PATH environment variable.

It's possible that you did not move the correct run-time DLLs. Dependency Walker will tell you which ones you need.
0 Kudos
hans_lochbihler
Beginner
1,585 Views

Dear Steve,

I have already checked my intel fortran DLLby means ofDependency walker. Apart from standard Win DLLs, it invokes the following DLLs:

  • LIBIFCOREMD.DLL
  • libguide40.dll
  • LIBMMD.DLL
  • MSVCR80.DLL

The first three DLLs come with the intel compiler, the last one seems to be a DLL from Microsoft VisulaStudio, which is located in the folder"C:winwinsxsx86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.163_x-ww_681e29fb"

I guess, the problem arrises that the DLL compiled by intel fortran looks for MSVCR80.DLL in that path mentioned above. Now my questions:

Is there any work-around to avoid the installation of MS-Visual Studio on the target system? Are the any compiler switches that this DLL will be searched in the application folder?

By the way, when I compile that DLL withmy old Lahey compiler, only one additional DLL (LF90WIOD.DLL) is required to runmy program on the target system.No further registrationsteps are needed, only copyingboth DLLs into the application folder of the target system.

Regards,

Hans

0 Kudos
Steven_L_Intel1
Employee
1,585 Views
See my first reply above for how to install the MSVC redistributables. You want the one for VS2005. You can link your DLLs statically (/libs:static /threads) to eliminate references to MSVC DLLs. The Lahey library evidently does not depend on the MSVC library.
0 Kudos
hans_lochbihler
Beginner
1,585 Views
Thanks! That was the solution!
0 Kudos
Reply