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

compile IPP 8 samples - audio video codecs

Int_B_
Beginner
328 Views

Hi

Trying to compile the audio video codecs from ipp-samples.8.0.0.005 on Linux.

ipp_8.0.0.061 installed successfully

I don't have opengl so I looked in

documentation/audio-video-codecs.html#_current_build_procedure_limitations_and_requirements

and I saw

Linux*

To build simple_player sample with window rendering support you need to install Mesa3D* development package and X Window System* development package. Alternatively you can comment-out UMC_ENABLE_SYS_GLX definition under Linux* section in umc_config.h to disable window rendering.

 

I commented that out, but when I build, it fails with:

/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status

Unfortunately t's still trying to link with opengl. Any suggestions appreciated.

Thanks!

 

 

0 Kudos
5 Replies
Pavel_V_Intel
Employee
328 Views

Hi,

You need to go to sources\audio-video-codecs\application\simple_player and modify CMakeLists.txt:

if( Linux )
  list( APPEND LIBS GL X11 pthread )
endif( )

Remove GL and X11 entries.

0 Kudos
Int_B_
Beginner
328 Views

Thanks, after removing those 2 entries the build gets much further but unfortunately still fails.

here is the link line and the first of many link errors:

/usr/bin/c++   -m64  -O2 -Wall    CMakeFiles/simple_player.dir/src/codec_selector.cpp.o CMakeFiles/simple_player.dir/src/pipeline.cpp.o CMakeFiles/simple_player.dir/src/pipeline_msdk.cpp.o CMakeFiles/simple_player.dir/src/simple_player.cpp.o  -o ../../__bin/release/simple_player -rdynamic -L/home/user/intel_ipp/composer_xe_2013_sp1.0.061/ipp/../compiler/lib/intel64 -Xlinker --start-group ../../__lib/release/libapplication_common.a ../../__lib/release/libavi_spl.a ../../__lib/release/libmpeg4_spl.a ../../__lib/release/libmpeg2_spl.a ../../__lib/release/libaac_common.a ../../__lib/release/libaac_dec.a ../../__lib/release/libac3_dec.a ../../__lib/release/libmp3_common.a ../../__lib/release/libmp3_dec.a ../../__lib/release/librenders_audio.a ../../__lib/release/librenders_video.a ../../__lib/release/libh264_dec.a ../../__lib/release/libmpeg2_dec.a ../../__lib/release/libmpeg4_dec.a ../../__lib/release/libvc1_common.a ../../__lib/release/libvc1_dec.a ../../__lib/release/libvc1_spl.a ../../__lib/release/libmjpeg_dec.a ../../__lib/release/libcommon_cc.a ../../__lib/release/libmedia_buffers.a ../../__lib/release/libcontainer_common.a ../../__lib/release/libcodec_common.a ../../__lib/release/libio_umc.a ../../__lib/release/libcore_umc.a ../../__lib/release/libvm_plus.a ../../__lib/release/libvm.a -Xlinker --end-group -lippcore -lipps -lippi -lippj -lippvc -lippcc -lippac -lippdc -lippch -lsvml -limf -lirc -lpthread
/home/user/intel_ipp/composer_xe_2013_sp1.0.061/ipp/lib/intel64/libipps.a(pscopye9cn_l9---ownsSet_32s.o): In function `l9_ownsSet_32s':
pscopye9cn_l9---ownsSet_32s.i:(.text+0x50): undefined reference to `ippGetMaxCacheSizeB'

 

-lGL is now gone from the link line, so that's good. also here are the env vars:

user@linux ~$ echo $IPPROOT
/home/user/intel_ipp/composer_xe_2013_sp1.0.061/ipp

user@linux ~$ echo $LD_LIBRARY_PATH
/home/user/intel_ipp/composer_xe_2013_sp1.0.061/ipp/../compiler/lib/intel64:/home/user/intel_ipp/composer_xe_2013_sp1.0.061/ipp/lib/intel64


"ippGetMaxCacheSizeB" is defined of course, in libippcore. Somehow the linker is confused. Could it be the order of the ipp libs on the link line?

thanks again for any suggestions.

 

0 Kudos
Sergey_K_Intel
Employee
328 Views

Int B. wrote:

...

../../__lib/release/libvm_plus.a ../../__lib/release/libvm.a -Xlinker --end-group -lippcore -lipps -lippi -lippj -lippvc -lippcc -lippac -lippdc -lippch -lsvml -limf -lirc -lpthread

...

"ippGetMaxCacheSizeB" is defined of course, in libippcore. Somehow the linker is confused. Could it be the order of the ipp libs on the link line?

Hi!

You are right. The IPP's "libippcore" must be the last among the IPP libs in the linker command line. On Linux the order of libs in command line matters.

Regards,
Sergey

 

0 Kudos
Int_B_
Beginner
328 Views

 

OK, how would one go about changing the linker command line? (Sorry, I'm not familiar with CMake).  I see a "link.txt" file in this directory:

/home/user/intel_ipp/ipp-samples.8.0.0.005/__cmake/audio-video-codecs.intel64.make.dynamic.release/application/simple_player/CMakeFiles/simple_player.dir/

 

But it seems to get overwritten every time I start the build so if I edit it, my edits get clobbered.

 

 

0 Kudos
Sergey_K_Intel
Employee
328 Views

Hi,

I don't see such problems. Compiling with both Intel compiler and gcc 4.6.3 with UMC_ENABLE_SYS_GLX commented and " GL and X11 entries" removed is ok. However, the order of libraries is like you provided "-lippcore -lipps ...". Somehow strange.

Refards,
Sergey

0 Kudos
Reply