I have developed an application software that performs FFT/IFFT with IPP. Now I want to distribute this software to a customer. To run my software, does our customer have to install IPP at his computer as well? Can I use IPP as static library and compile it into exe file thus our customer doesn't have to install the IPP?
BTW, if our customer has to install IPP, how much should he pay?
Only you (the developer) are required to purchase and license the IPP library. You can redistribute those parts of the library that are listed in the redist.txt file in the install directory. Your customer does not need to purchase IPP or execute any sort of license with Intel.
Your purchase of the library also makes you eligible for updates for one year from purchase. If you have registered your email address with us you'll receive an email notification when updates are available (an update is schedule for next week).
There are no royalty fees associated with your redistribution of the items in redist.txt. You pay only the cost of the library.
Simplest approach to distributing the library is as you have suggested, just link statically with the library so the only thing you have to distribute is your EXE file. If you choose to use the DLL approach you will have to also distribute the appropriate parts, but static linking is by far the simplest and, in most cases, the smallest distribution method.
Hope that helps,
Thanks to Paul's response.
In addtion to that, please check several useful reference on Intel IPP Licensing Q&A and redistribution:
Intel IPP licensing FAQs:
Which Intel IPP libraires are "Redistributables"?
When I turn on static linking, I have fatal link problems.
To turn on static linking, with VS2005 I do the following:
(1) right click on project, click Properties
(2) on General tab, Use of MFC, switch from "Use MFC in a shared DLL" to "Use MFC in a static library"
(3) On C++ Code Generation tab, Runtime Library, switch from "Multi-threaded DLL (/MD)" to "Multi-threaded (/MT)"
All the IPP libraries are identified in Linker Input tab, naming the LIB files needed.
After doing #2 and #3 above, I get multiple fatal link problems, all kinds of conflicts.
How to link IPP static?
The switches you changed affect your CRT libraries, not the IPP libraries. You need to change the list of IPP library files you are linking against. See the following KB article for more info: