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

External application using IMSL

feliciobbarros
Beginner
1,224 Views

Hello,

I am using Visual Fortran 11.1 and IMSL 6.0. I need create an exe file (prompt application) to execute in other computers without Visual Fortran and IMSL. Nowdays, when I do it, a receive a messagem warning that the imsl_dll.dll file was not found. How can I link the necessary static files from IMSL to my application.

Thanks for any help

Felicio.

0 Kudos
8 Replies
Steven_L_Intel1
Employee
1,224 Views

You would need to specify the static IMSL libraries. If you are using an INCLUDE file such as 'link_fnl_shared.h', change that to the following:

include 'link_fnl_static.h'
!DEC$ OBJCOMMENT:'libiomp5mt.lib'

If you have enabled OpenMP in your application, do not use the OBJCOMMENT directive and instead add:

/Qopenmp-link:static

under Fortran > Command Line > Additional Options

If instead you are explicitly naming the IMSL libraries for the linker, use the static library set instead.

Alternatively, you can copy imsl_dll.dll to the other system and place it alongside the EXE.

0 Kudos
feliciobbarros
Beginner
1,224 Views

First of all, thank you for your explanation.

I includedINCLUDE 'link_fnl_static.h' as you stated, but another problem have taken place:

- when I build the solution the following 37 erros appears. The first one is, for example:

"Error 1 error LNK2019: unresolved external symbol ___kmpc_global_thread_num referenced in function _E1LOCK imsls_err.lib(e1lock.obj)"

The other ones are similar.

The only thing that I have changed in my code was replacinglink_fnl_shared.h bylink_fnl_static.h.

Thank you in advance,

Felcio.

0 Kudos
Steven_L_Intel1
Employee
1,224 Views
You need to add that second line with the OBJCOMMENT directive, then.
0 Kudos
feliciobbarros
Beginner
1,224 Views
Thank you.
I include
INCLUDE 'link_fnl_static.h'
!DEC$ OBJCOMMENT LIB:'libiomp5md.lib'
and the solution was built with no problem. But when I use the exe application in another computer I receive a message looking for the libiomp5mdl.dll file.
0 Kudos
Steven_L_Intel1
Employee
1,224 Views
Right. That's why I told you to use 'libiomp5mt.lib' instead.
0 Kudos
feliciobbarros
Beginner
1,224 Views

Maybe I'm not understanding your instructions.

According to your suggestions I did the following:

- I added

INCLUDE 'link_fnl_static.h'
!DEC$ OBJCOMMENT LIB:'libiomp5md.lib'
- I didnt change anything in the project properties.
As a result, I could compile and generate the exe file, that worked very well in my computer (with the IMLS distribution). But, if I use this file in another computer, a message asking forlibiomp5mdl.dll file appear.
Thank you again for your responses,
Felicio.

0 Kudos
Steven_L_Intel1
Employee
1,224 Views
You missed that the name of the library I suggested ends in MT, not MD.
0 Kudos
feliciobbarros
Beginner
1,224 Views

Well, you are right. Now everything is ok.

Thank you,

Felicio.

0 Kudos
Reply