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

libguide.dll (10.0.025)?

davidspurr
Beginner
1,113 Views
Have just sent an exe to a client. Program has been in use for c6 yrs but this is the first time it was compiled with 10.0.025. Program exe is initiated from a VB UI. Client is getting a "Can't find libguide.dll" message that we have never seen before (my program is just a single exe - no DLL's involved).

Possibly something to do with threading?

Program runs fine on my laptop that has IVF10 installed, also on my desktop that still only has IVF9.0.xxx on it.

Do I have to supply a runtime copy of the libguide DLL from now on, or is there some other problem?

David
0 Kudos
6 Replies
TimP
Honored Contributor III
1,113 Views
The option -static-intel would link libguide statically. Otherwise, you would have to supply the .dll . You must have used some form of static link before.
0 Kudos
davidspurr
Beginner
1,113 Views
Tim thanks

How do I specify that option from the IDE?

"Use Portability Library" under Properties > Fortran > Libraries ???

0 Kudos
Steven_L_Intel1
Employee
1,113 Views
-i-static is not supported on Windows.

Yes, you are getting the reference to libguide.dll because you added threading. You can copy the DLL to the target system or, I think this works, add libguide.lib to the list of libraries referenced under Linker > Additional Dependencies.
0 Kudos
davidspurr
Beginner
1,113 Views
Thanks Steve

1. Client later advised that the program was searching for "libguide40.dll" rather than "libguide.dll". (Cannot actually find a "libguide.dll" file, anyway).

2. I sent "libguide40.dll" to the client who put it in his WINNT/system32 directory & that did fix the problem.

3. However I would much prefer to retain this as a self-contained exe as the main users are not tech savy & I would prefer not to add dll's to their systems.

4. Adding "libguide40.dll" under Linker > Additional Dependencies results in a compile error "fatal error LINK1136: invalid or corrupt file", and points to the "libguide40.dll" file (including full correct path). [Adding "libguide.dll" results in a different error - IIRC cannot find "libguide.dll"].

5. So ... any other way I can bind "libguide40.dll" into my exe?

###

6. Re "because you added threading": Me? I just did a "straight forward" upgrade to v10.0.025; ie. removed the VS link to IVF, removed v9.1.xx, then installed v10.0.025. AFAIK I made no changes in respect to threading.

7. I'm guessing that the install for 10.0.025 defaulted to the threading option because it is a Core 2 Duo chip in the laptop?

8. Yes I now see a screed of threading messages when I compile. Frankly, it seems to have made no difference at all to the run time (program has several timing calls in it, so I know the runtime accurately. Ones I checked so far have taken slightly longer than before, but that may just be system environment issues given that I usually have multiple windows open. Also, I have only tested on small jobs so far.

9. At this point the threading is actually a pain in the butt, as the compile time is significantly longer. Can the threading be turned off / on easily? If so where?

Thanks
David




0 Kudos
Steven_L_Intel1
Employee
1,113 Views
Note that I said you can add libguide.lib to the linking - that's the static version. Yes, you must have specified an option for threading such as /Qopenmp or /parallel - otherwise you don't get this library.
0 Kudos
davidspurr
Beginner
1,113 Views
Apologies, I missed the .lib (rather than .dll) bit in the second libguide reference in your earlier post. Yes, it compiles OK with "libguide.lib" added under Linker > Additional Dependencies.

And yes, looks like I must have set /parallel. Have now disabled.

Will have to wait till tonight to check the exe's (parallel & non-parallel) on a system without the dll. Both work on my system (T7400) but the "/Qopenmp /Qparallel" option takes ~8% longer to run a small job.

Will not use /parallel for now anyway as I doubt if the users have duel core cpus.

Thanks


0 Kudos
Reply