64-bit Linux: Many link errors

64-bit Linux: Many link errors

I am trying to statically link to the ipp and uic libraries. I am using IPP 6.1.6.063 and have downloaded the 6.1 sample code. I am using g++. Any help with this problem would be greatly appreciated.

To help debug this I have listed all the ipp lib files in my link list as suggested in this article:

http://software.intel.com/en-us/articles/simplified-link-instructions-for-the-ipp-library

As well as the shared iomp5 lib file as recommended here: http://software.intel.com/en-us/articles/openmp-support-change/

IPP_LIB = -L/opt/intel/ipp.6.1.6.063/em64t/lib \\
-lippacemergedem64t -lippccemergedem64t -lippchemergedem64t -lippcvemergedem64t -lippdcemergedem64t \\
-lippdiemergedem64t -lippgenemergedem64t -lippiemergedem64t -lippjemergedem64t -lippmemergedem64t \\
-lippremergedem64t -lippscemergedem64t -lippsemergedem64t -lippsremergedem64t -lippvcemergedem64t \\
-lippvmemergedem64t -lippacmergedem64t_t -lippccmergedem64t_t -lippchmergedem64t_t -lippcvmergedem64t_t \\
-lippdcmergedem64t_t -lippdimergedem64t_t -lippgenmergedem64t_t -lippimergedem64t_t -lippjmergedem64t_t \\
-lippmmergedem64t_t -lipprmergedem64t_t -lippscmergedem64t_t -lippsmergedem64t_t -lippsrmergedem64t_t \\
-lippvcmergedem64t_t -lippvmmergedem64t_t -lippcoreem64t_t \\
/opt/intel/ipp/6.1.6.063/em64t/sharedlib/libiomp5.so

I am also linking to the following uic libraries:

UIC_LIB = "${SRCDIR}/_bin/linuxem64t_gcc4/lib/uic_core_l.a" \\
"${SRCDIR}/_bin/linuxem64t_gcc4/lib/uic_io_l.a" \\
"${SRCDIR}/_bin/linuxem64t_gcc4/lib/uic_jpeg_common_l.a" \\
"${SRCDIR}/_bin/linuxem64t_gcc4/lib/uic_jpeg_dec_l.a" \\
"${SRCDIR}/_bin/linuxem64t_gcc4/lib/uic_jpeg_enc_l.a"

The following is just the first couple of link errors I receive:

Linking...
/home/frenet/Downloads/ipp-samples/image-codecs/uic/_bin/linuxem64t_gcc4/lib/uic_jpeg_dec_l.a(uic_jpeg_dec.o): In function `UIC::JPEGDecoder::SetNOfThreads(unsigned int)':
uic_jpeg_dec.cpp:(.text+0x867): undefined reference to `set_num_threads(int)'
/home/frenet/Downloads/ipp-samples/image-codecs/uic/_bin/linuxem64t_gcc4/lib/uic_jpeg_dec_l.a(uic_jpeg_dec.o): In function `UIC::JPEGDecoder::NOfThreads()':
uic_jpeg_dec.cpp:(.text+0x851): undefined reference to `get_num_threads()'
/home/frenet/Downloads/ipp-samples/image-codecs/uic/_bin/linuxem64t_gcc4/lib/uic_jpeg_dec_l.a(jpegdec.o): In function `CJPEGDecoder::ReconstructMCURowLS(short*, int, int)':
jpegdec.cpp:(.text+0xa7f): undefined reference to `CJPEGColorComponent::GetCCBufferPtr(int)'
jpegdec.cpp:(.text+0xaf4): undefined reference to `ippiReconstructPredFirstRow_JPEG_16s_C1'
jpegdec.cpp:(.text+0xb13): undefined reference to `ippsLShiftC_16s'
jpegdec.cpp:(.text+0xb43): undefined reference to `ippiAndC_16u_C1IR'
jpegdec.cpp:(.text+0xb62): undefined reference to `ippiConvert_16u8u_C1R'
jpegdec.cpp:(.text+0xbbf): undefined reference to `CJPEGColorComponent::GetCCBufferPtr(int)'
jpegdec.cpp:(.text+0xc07): undefined reference to `ippsCopy_16s'
jpegdec.cpp:(.text+0xc44): undefined reference to `ippiReconstructPredRow_JPEG_16s_C1'
/home/frenet/Downloads/ipp-samples/image-codecs/uic/_bin/linuxem64t_gcc4/lib/uic_jpeg_dec_l.a(jpegdec.o): In function `CJPEGDecoder::ReconstructMCURowEX(short*, int)':
jpegdec.cpp:(.text+0xd64): undefined reference to `CJPEGColorComponent::GetSSBufferPtr(int)'
jpegdec.cpp:(.text+0xdf7): undefined reference to `ippiDCTQuantInv8x8LS_JPEG_16s16u_C1R'
jpegdec.cpp:(.text+0xe91): undefined reference to `CJPEGColorComponent::GetCCBufferPtr(int)'

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Please note that link order is important under Linux. You may check UIC applications Makefile to see what order we use to link under Linux.

Also would like to encourage you to try the latest version of IPP and UIC. We just recently released IPP 7.0.3 which include some improvements and bug fixes.

Regards,
Vladimir

Thank you Vladimir. For the record, moving the uic_jpeg_common_l.a library to the end of the UIC library list resolved this for me.

Leave a Comment

Please sign in to add a comment. Not a member? Join today