Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Static versus Dynamic Linking

ccoedev
Beginner
346 Views
I am trying to integrate Intel IPP into my visual studio project. On my PC, I have Intel IPP 6.1.2 installed with the appropriate license keys. I am able to compile and produce a custom dll (called CodecH264.dll) which interfaces with Intel IPP libraries and subsequently am able to dynamically load CodecH264.dll if it is present it into my execuatble without any problems.

When I try to re-distribute this custom CodecH264.dll, it fails to load and run on anyone else's PC unless I statically link it into the executable itself and make the size of the executable very large. I would rather dynamically link instead of static linking. What am I missing ? I assume I need to put a license key file somewhere to be able to find the necessary license key when I redistribute my custom dll. So my question is do I need to include a license key when I redistribute CodecH264.dll which uses Intel IPP even though it the dll itself uses static linked libraries.

Here are the library files I am statically linking in to produce this custom CodecH264.dll
AdditionalDependencies="ippcorel.lib ippacemerged.lib ippacmerged.lib ippccemerged.lib ippccmerged.lib ippdcemerged.lib ippdcmerged.lib ippiemerged.lib ippimerged.lib ippjemerged.lib ippjmerged.lib ippsemerged.lib ippsmerged.lib ippvcemerged.lib ippvcmerged.lib winmm.lib umc.lib umc_io.lib vm.lib vm_plus.lib video_renders.lib avi_spl.lib color_space_converter.lib common.lib demuxer.lib media_buffers.lib scene_analyzer.lib spl_common.lib h264_spl.lib h264_enc.lib h264_dec.lib"

A prompt response in this regard is most appreciated.

Thanks
0 Kudos
1 Reply
Ying_H_Intel
Employee
346 Views
Quoting - ccoedev
I am trying to integrate Intel IPP into my visual studio project. On my PC, I have Intel IPP 6.1.2 installed with the appropriate license keys. I am able to compile and produce a custom dll (called CodecH264.dll) which interfaces with Intel IPP libraries and subsequently am able to dynamically load CodecH264.dll if it is present it into my execuatble without any problems.

When I try to re-distribute this custom CodecH264.dll, it fails to load and run on anyone else's PC unless I statically link it into the executable itself and make the size of the executable very large. I would rather dynamically link instead of static linking. What am I missing ? I assume I need to put a license key file somewhere to be able to find the necessary license key when I redistribute my custom dll. So my question is do I need to include a license key when I redistribute CodecH264.dll which uses Intel IPP even though it the dll itself uses static linked libraries.

Here are the library files I am statically linking in to produce this custom CodecH264.dll
AdditionalDependencies="ippcorel.lib ippacemerged.lib ippacmerged.lib ippccemerged.lib ippccmerged.lib ippdcemerged.lib ippdcmerged.lib ippiemerged.lib ippimerged.lib ippjemerged.lib ippjmerged.lib ippsemerged.lib ippsmerged.lib ippvcemerged.lib ippvcmerged.lib winmm.lib umc.lib umc_io.lib vm.lib vm_plus.lib video_renders.lib avi_spl.lib color_space_converter.lib common.lib demuxer.lib media_buffers.lib scene_analyzer.lib spl_common.lib h264_spl.lib h264_enc.lib h264_dec.lib"

A prompt response in this regard is most appreciated.

Thanks

Hello,

No, you don't need toinclude a liense key withthe custom dll CodecH264.dll. The IPPlicense is royalty-free license , soit is free toredistribute of Intel IPP library including custom dll based on IPP.

What is the error message when you load the dll on other's PC? Does the PC installed same visual studio version(mainly runtime library)?

Could you please provide me small test project (including the codecH264.dll project)?
You can reply this as Private, then your test project will be proteced.

Regards,
Ying
0 Kudos
Reply