- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
My apologies if this has been asked before/recently, especially if it was asked by me. :-)
I am testing calling a Fortran DLL from Python, and it works fine on the machine (Windows XP, SP2) where it is built. But when I try it on another machine (Windows XP, SP3) I get this error:
WindowsError: [Error 14001] This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
The error occurs when I attempt to load the DLL, i.e. before calling a subroutine.
Does this message mean that I need to copy some Intel DLLs onto this machine? There was a trial version of ifort installed, but it has expired.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try to look at dependencies of your dll (on my PC i use right-hand mouse button and "View dependencies") search for all lib*.dll which are most probably fortran libraries used by your dll.
Or link dll against static libraries.
Jakub
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes! Static linking did the trick. Thanks a lot.
I'm not sure how to use the right mouse click to view dependencies, though. Do you mean in Explorer? R-click doesn't show such an option in XP.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, I meant right click in explorer on dll file. It works fine with my installation of Fortran, may be it depends on installation.
Jakub
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A command line alternative is dumpbin /dependents some.dll
The .dll collection you got from a trial installation won't stop working when the trial period ends. Current versions of ifort have a companion redistributable .dll package of which you can make unlimited use while the version is covered by your license. Older versions entitle you to copy those which your application requires.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Amazing the timeliness of this thread. I am struggling with exactly the same problem.
I have an app that links at run time with multiple or no DLL's depending on the simulation setup. I had the same problem in the past when using an older version of Visual FORTRAN that I fixed by adding the FORTRAN libraries. I now am using VF 11.0 and can't get it to work.
Here is what I have done, using the dependency walker I isolated the DLL's and put them in the directory with the executable on the target machine. Still get the same error # 14001.
Not sure what you mean link statically.
Thanks in advance,
Mark
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Project > Properties > Fortran > Libraries > Runtime Library
select Multithreaded instead of Multithread DLL (or the Debug versions thereof).
This links the libraries into the executable (i.e. statically), otherwise the executable will use the DLLs (dynamic libraries) on the host machine, which might not be compatible. I don't understand why copying the appropriate DLLs into the working directory doesn't work.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve, in that pdf, under building a program with statically-linked runtime libraries from the command line, it says:
Use Qopenmp-link:static to link the static OpenMP runtime library. ... Linking static OpenMP runtime library is not recommended.
How is that statement to be interpreted?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It should be interpreted as "do this if you think you have to, but it can cause other problems". Generally, the issue is that if you are mixing with other code that references the DLL OpenMP libraries, bad things can happen by having two OpenMP libraries active. (Usually you get an error message about this but not always.)
For people who absolutely want everything static, we provide the option, but we'd prefer that you didn't use it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page