Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Announcements
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.

Link errors when use audio_video_codecs

Genady_Malinsky
Beginner
3,855 Views

I am used Intel IPP version 6.0.167 I upgraded to the Intel IPP Composer XE 2011 SP1 and ipp-samples_p_7.0.7.064. My machine OS in Win7  32-bit my DirectX version is 11. I compile it with this command:

C:\IPP\\ipp-samples\tools>buildall.bat ia32 "cl8"

I managed to build all the projects and I wrote simple tester which create the VC1VideoDecoser. 

CAutoPtr<UMC::VideoDecoder>  pVideoDec= CAutoPtr<UMC::VC1VideoDecoder>(new UMC::VC1VideoDecoder);

My tester compiled but I encountered alot of linkage errors such as:

Error 1 error LNK2005: _ippStaticInit@0 already defined in ippcore.lib(ippcore-7.0.dll) ippcorel.lib

Error 3 error LNK2019: unresolved external symbol "public: virtual __thiscall UMC::VideoData::~VideoData(void)" (??1VideoData@UMC@@UAE@XZ) referenced in function __unwindfunclet$??0VideoDecoder@UMC@@QAE@XZ$0 vc1_dec.lib

Assistance will be much appreciate.

0 Kudos
31 Replies
Genady_Malinsky
Beginner
1,076 Views
Hi, I notice that error as I metioned I tried to compile all the codecs libs into static ones only the uic_transcoder_con FAILED. when I compile the uic_png as dynamic one I passed the build. How should I know which module is missing? and After I compile the uic_png as dynamic one and I passed and I tried to run my application - I got this error popup: "The program can't start because uic_jpeg2000-1.0.dll is missing from your computer. Tray reinstalling the program to fix this problem." How Can I get static libs insted of dynamic ones? I got anothe problem: I wrote simple tester that make siple wrapper for the jpeg2000 (MotionJPEG2000_dec.lib) and when I compile צט אקדאקר 'יןבי ודקד איןד 'רשפפקר it I got this link errors: Error 3 error LNK2001: unresolved external symbol "public: int __thiscall CIppImage::Alloc(struct IppiSize,int,int,int)" (?Alloc@CIppImage@@QAEHUIppiSize@@HHH@Z) MotionJPEG2000_dec.lib Error 4 error LNK2001: unresolved external symbol "public: virtual __thiscall CIppImage::~CIppImage(void)" (??1CIppImage@@UAE@XZ) MotionJPEG2000_dec.lib Error 5 error LNK2001: unresolved external symbol "public: __thiscall CIppImage::CIppImage(void)" (??0CIppImage@@QAE@XZ) MotionJPEG2000_dec.lib I added to my code : #pragma comment(lib,"uic_transcoder_con.lib") #pragma comment(lib,"uic_core.lib") #pragma comment(lib,"uic_bmp.lib") #pragma comment(lib,"uic_pnm.lib") What is missing ?
0 Kudos
Bernard
Valued Contributor I
1,076 Views
>>>Hi Genady, Looking at a 1st link error:>>> Hi Sergey! It is always nice to see you and read your posts.Where have you been?
0 Kudos
SergeyKostrov
Valued Contributor II
1,076 Views
Hi everybody, >>... >>...The program can't start because uic_jpeg2000-1.0.dll is missing from your computer... >>... When you tried to compile the sources did you use a dynamic link library uic_jpeg2000-1.0.lib ( or something like this )? >>...It is always nice to see you and read your posts. Where have you been? That was simply a Christmas Time...
0 Kudos
Genady_Malinsky
Beginner
1,076 Views
Hi, No I don't have such lib uic_jpeg2000-1.0.lib. I compile the Image codecs as static libs - I changed the makefile of the codecs into: all: $(OBJS) $(AR) $(ARFLAGS) $(OBJS) /out:"$(IMP_LIB)" # $(LD) $(LDFLAGS) /out:"$(TARGET2)" $? # @if not "%VSINSTALLDIR:~-16,4%"=="2003" if not "%VSINSTALLDIR:~-5,4%"=="10.0" ( mt.exe -manifest "$(TARGET2).manifest" -outputresource:"$(TARGET2)";2 ) the makefiles that I changed are: bmp, dds, jpeg, jpeg2000, jpegxr, pnm, and tiff. one codec I did not chaged - When I tried to change the uic_png.mak I get error when compiling in the build. ( as you can notice from the log above). Is this the way to create the static libs? and How Can I resoved my issue?
0 Kudos
SergeyKostrov
Valued Contributor II
1,076 Views
Hi Genady, >>...Is this the way to create the static libs? and How Can I resoved my issue? I would follow a different path and steps are as follows: - Create a new project Win32 Static Library ( empty ) in a Visual Studio - Add a couple of test functions - Integrate the new project with some existing C/C++ Visual Studio project - Verify that everything is right ( there are no external dependencies ) - Intergarte needed IPP Audio-Video functionality Does it make sence?
0 Kudos
SergeyKostrov
Valued Contributor II
1,076 Views
Hi Genady, >>...Is this the way to create the static libs? and How Can I resoved my issue? I would follow a different path and steps are as follows: - Create a new project Win32 Static Library ( empty ) in a Visual Studio - Add a couple of test functions - Integrate the new project with some existing C/C++ Visual Studio project - Verify that everything is right ( there are no external dependencies ) - Intergarte needed IPP Audio-Video functionality Does it make sence?
0 Kudos
Sergey_K_Intel
Employee
1,076 Views
Hi Genady, If you want to build uic_transcoder_con, there should be next steps done. Your unresolved references come from zlib library. They are required by PNG codec only. If PNG is a DLL, uic_transcoder_con doesn't link zlib directly, so there's no need to describe zlib library in makefile. Now you need. First, change TARGET2 = $(STUBLIB_DIR)\ipp_zlib.lib in ipp_zlib.mak file. After that ipp_zlib library will be created in _bin\...\stublib directory along with other uic static libs. Then, add uic_jpegxr.lib \ ipp_zlib.lib "ipp_zlib.lib" to the end of UIC_LIBS definition in uic_transcoder_con.mak file. Here you're saying, that ipp_zlib library must be also taken into build process. And the last one: add "LINKAGE = static" to the top of uic_transcoder_con.mak file. There is some mess with static/dynamic selection in particular project files, so specify exactly static IPP linking. In my case I was able to build fully static uic_transcoder_con application. Regards, Sergey
0 Kudos
SergeyKostrov
Valued Contributor II
1,076 Views
>>...And the last one: add "LINKAGE = static" to the top of uic_transcoder_con.mak file. There is some mess with static/dynamic >>selection in particular project files, so specify exactly static IPP linking. >>In my case I was able to build fully static uic_transcoder_con application. Thanks for the update, Sergey! Any chance to fix "...some mess with static/dynamic selection..." in future releases?
0 Kudos
Sergey_K_Intel
Employee
1,076 Views
Sergey Kostrov wrote:

Any chance to fix "...some mess with static/dynamic selection..." in future releases?

We completely changed build system for samples in 7.1. Genady works with 7.0.x. Regards, Sergey
0 Kudos
Genady_Malinsky
Beginner
1,076 Views

Hi

I Created a new project Win32 Static Library ( empty ) in a Visual Studio and added the relevant code into it and I managed to get static lib.

Thanks for your help.

0 Kudos
SergeyKostrov
Valued Contributor II
1,076 Views
Hi Genady, I think everybody will be glad that after almost 4 weeks you've finally solved all problems. Best regards, Sergey
0 Kudos
Reply