I'm trying to compile the JPEG library in the IPP Samples (audio-video codecs\codec\jpeg) and the compilation takes 15 minutes, then gives the error:
1>LINK : fatal error LNK1189: library limit of 65535 objects exceeded
What don't I have set correctly?
Also, is there some sample of the library in use?
Could you please tell what compiler and command you are using?
The sample request latest Intel C/C++ compilers or Microsoft* C/C++.NET* 2003/2005/2008.
If you only look for jpeg codec, there isanother UIC sample (Unified Image Codec) in IPP sample ipp-samplesimage-codecsuic, whichshowthe usage ofjpeg/jpeg2000 library,you may try to compileit
For example, in MSVC 2005 command line windows,
But please note,each sample includes onereadme.htm /release notesfile,which give some guide about Software requirements,How to Build Source Code, pleaseread it before buildIPP sample.
Some users may stillcare of the problem.
We can't reproduce the problem with audio-vedio-codec ( it includes severalVisual Stuido Solution).
But according to the error message
"fatal error LNK1189: library limit of 65535 objects exceeded"
It hints that too many files or export function exceed the limitation of compiler can support.
As MSDN KB http://support.microsoft.com/kb/949945:
64k is the maximum limitation for the library for export symbols. There is no way to go beyond this limit.
It's a expected behavior and built into the format of a library; alimitation from the compiler for DLLs.
i guess,Billmay bebuilding dll or static library based on the sample code, at the same time, link all most of ipp libraries, which actually arenot necessary ( Please see the Selecting the Intel IPP libraries needed by your application ).
So you may see thatadirect solutionis toremove too many files or symbols.
1) build a custom dynamic library (selectthe used function list), then link the custom dll to your application (i.eheuristic link structure) . instead of build all into onelibrary. as the article mentioned,
2) especially talking about UMC sample code.
Actually, oncecompile completed, you will seeall codec librariesare produced in order as below screenshot.
for example jpeg.libunder directorylib.Thenif one only need jpeg codec, then you can create your jpeg application and linkjpeg.lib and other related libraries.(remove other inrelevent codec or projects) as theproject of umc_h264_dec_con.sln.
Thusthestructure ofapplication and library are clear, and avoid the 64k limitation as well.
Seeone similiar discussion are in http://software.intel.com/en-us/forums/showthread.php?t=72544