Community
cancel
Showing results for 
Search instead for 
Did you mean: 
liorwavebreak_tv
Beginner
137 Views

OMP Abort .. conflict with libguide40.dll and libiomp5md.dll

I am using a point gray flycapture sofware and want to use it with the ipp.
When finishing all the needed includes and settings of both softwares I run the application and get this message:

"OPM Abort: Initializing libguide40.dll but found libiomp5md.dll already initialized
This may cause performance degradation and correctness issues ..."

Since I dont want to set the KMP_DUPLICATE_LIB_OK to TRUE .. I need another solution..
I need both of them to work together with no conflict ..

10x
0 Kudos
9 Replies
Vladimir_Dudnik
Employee
137 Views

Hello,

I'm not familiar with flycapture software you mention but issue symptoms are similar to know issue when one application use two different OpenMP run time libraries.

You probably know, Intel Compiler v10 develop new version of OpenMP run time library calles as libiomp5. This new library is fully compatible with the previous version of OpenMP run time library. The previous version of OpenMP run time library, called ligbuide40, is now deprecated. It still delivered with Intel Compiler 11 to provide some time for migration to new run time and will be excluded from compiler distribuition sometime in future.

Starting fromversion 6.0 IPP DLLs built with using new OpenMP run time library. This limit use of IPP DLLs in projects which also use old version of OpenMP run time.
The workarounds you may consider are:
-to rebuild the software which use libguide40 to use libiomp5 library.
- to use IPPthreaded static libraries in your code which also use third-party components which may depned on libguide40. In case of threaded static libraries you may link with whatever OpenMP run time you like (Microsoft, GCC on Linux, old Intel libguide40)
- finaly, you may link your code with IPP static not threaded libraries and implement threading on top of IPP.

Regards,
Vladimir
liorwavebreak_tv
Beginner
137 Views



Hello Vladimir,

Thanks for your replay..
The solutions you offered are not good for me.. the flycapture software is an API of an image capturing device (camera) - link: http://www.ptgrey.com/index.asp , the code there can not be rebuilded by means of changing dll names

Do you have another solution .. implimenting threading is not an option too.
I am trying to see with PG wether they support that conflict with some kind of an update but,
Competability must make sure that other software can run together, Point gray is not the only software that might need the libguide40 ..

10x
Vladimir_Dudnik
Employee
137 Views


Well let me understand the issue. I assume you have some third party libraries (have no source code for them)which built with using one of the previous version of IPP, say 5.3 and linked with IPP DLLs. So this third party component need libguide40.dll in order to run. Then you integrate this component into your application, where you have full control on source code and build options. And you also want to use IPP here.
If this is correct assumtion then the second option I suggested should perfectly work for you. I mean you may call IPP functions from your code and functions from that third-party component, you may build your code with MS VC2005 (for example) and linkit with IPP 6.0 static threaded libraries (this will require to setOpenMP option for vc2005 compilation). In this way everything should work together.

Vladimir
liorwavebreak_tv
Beginner
137 Views

Thanks,

Can you describe to me all the needed configurations for the second option ..
Now I have the include/lib defined in the c++ directories for both the point gray and ipp
And I added the relevant files in linker additional dependencies.
Also I include the point gray and ipp headers in my code

What do I need to change or add ..

Thanks again
Vladimir_Dudnik
Employee
137 Views

Thanks,

Can you describe to me all the needed configurations for the second option ..
Now I have the include/lib defined in the c++ directories for both the point gray and ipp
And I added the relevant files in linker additional dependencies.
Also I include the point gray and ipp headers in my code

What do I need to change or add ..

Thanks again

You need to link with IPP threaded static libraries instead of DLL import libraries. That's all you need to do on IPP side. Make sure OpenMP enabled is set in your VC studio projects (or appropriate option set in Makefile for cl.exe)

Vladimir
liorwavebreak_tv
Beginner
137 Views

OK, right about there ...

i linked all the libs .. enabled openMP and now i get:

LINK : fatal error LNK1104: cannot open file 'VCOMPD.lib'

when compiling .. this is an openMP lib, and I have also installed the redist pack of 2008..

what to do ?
Vladimir_Dudnik
Employee
137 Views

What compiler do you use? Make sure your edition of MS VC support OpenMP and all necessary libraries are installed. From error message you give it is clear that linker can't find MS OpenMP import library for debug configuration.

Note, you need to install vc2008 redist files only when you run vc2008 generated project on old system (say Windows XP or Server 2003) which do not have appropriate run time libraries for new compiler.

Vladimir
liorwavebreak_tv
Beginner
137 Views

OK, right about there ...

i linked all the libs .. enabled openMP and now i get:

LINK : fatal error LNK1104: cannot open file 'VCOMPD.lib'

when compiling .. this is an openMP lib, and I have also installed the redist pack of 2008..

what to do ?

I am using VC2008 .. the regdist .. I know, just thought it could help..
So what else I need to install or set inorder to have this file .. Some special SDK ? another tag ?
liorwavebreak_tv
Beginner
137 Views


I am using VC2008 .. the regdist .. I know, just thought it could help..
So what else I need to install or set inorder to have this file .. Some special SDK ? another tag ?

and I dont have any Intel compiler ...
Do I need to install the open MP separetly from VS2008 ?
I needed the ipp, no one mentioned I need another software ? will I have to buy the openMP ?

so ?
Reply