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

Link errors when use audio_video_codecs

Genady_Malinsky
Beginner
1,561 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
435 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
435 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
435 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
435 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
435 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
435 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
435 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
435 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
435 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
435 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
435 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