Community
cancel
Showing results for 
Search instead for 
Did you mean: 
frenet
Beginner
66 Views

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)'

0 Kudos
2 Replies
Vladimir_Dudnik
Employee
66 Views

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
frenet
Beginner
66 Views

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.
Reply