- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am statically linking to the ipp, umc & uic libraries.I am using IPP 6.1.6.063 and have downloaded the 6.1 sample code. I am using g++.
IPP_LIBS = "${IPP_DIR}/lib/libippdcemerged$(IPP_FILE_EXT).a" \\
UIC_LIBS = "${UIC_IMAGE_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/uic_core_l.a" \\
UMC_LIBS ="${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libmpeg4_mux.a" \\
I have added -lpthread before any of the ipp, uic or umc library lists.
Can anyone tell me what it is I am doing wrong?
I can build my own shared object that statically links to ipp and umc, but when I try to build an application that links to my shared object, I get the following link error:
/opt/intel/ipp/6.1.6.063/ia32/sharedlib/libiomp5.so: undefined reference to `pthread_atfork'
I did see the following note in this article:
Error message: /opt/intel/ipp/6.0.0.045/em64t/sharedlib/libiomp5.so: undefined reference to `pthread_atfork'
I do have -lpthread specified, but the error still occurs. Here are my ipp library lists:
- Please make sure to link "-lpthread" library in your command line.
I do have -lpthread specified, but the error still occurs. Here are my ipp library lists:
IPP_LIBS = "${IPP_DIR}/lib/libippdcemerged$(IPP_FILE_EXT).a" \\
"${IPP_DIR}/lib/libippdcmerged$(IPP_FILE_EXT).a""${IPP_DIR}/lib/libippccemerged$(IPP_FILE_EXT).a" \\
"${IPP_DIR}/lib/libippccmerged$(IPP_FILE_EXT).a""${IPP_DIR}/lib/libippcvemerged$(IPP_FILE_EXT).a" \\
"${IPP_DIR}/lib/libippcvmerged$(IPP_FILE_EXT).a""${IPP_DIR}/lib/libippjemerged$(IPP_FILE_EXT).a" \\
"${IPP_DIR}/lib/libippjmerged$(IPP_FILE_EXT).a" "${IPP_DIR}/lib/libippvcemerged$(IPP_FILE_EXT).a" \\
"${IPP_DIR}/lib/libippvcmerged$(IPP_FILE_EXT).a""${IPP_DIR}/lib/libippiemerged$(IPP_FILE_EXT).a" \\
"${IPP_DIR}/lib/libippimerged$(IPP_FILE_EXT).a" "${IPP_DIR}/lib/libippsemerged$(IPP_FILE_EXT).a" \\
"${IPP_DIR}/lib/libippsmerged$(IPP_FILE_EXT).a" "${IPP_DIR}/lib/libippcore$(IPP_FILE_EXT).a" \\
"${IPP_DIR}/sharedlib/libiomp5.so"
UIC_LIBS = "${UIC_IMAGE_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/uic_core_l.a" \\
"${UIC_IMAGE_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/uic_io_l.a" \\
"${UIC_IMAGE_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/uic_jpeg_enc_l.a" \\
"${UIC_IMAGE_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/uic_jpeg_dec_l.a" \\
"${UIC_IMAGE_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/uic_jpeg_common_l.a"
UMC_LIBS ="${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libmpeg4_mux.a" \\
"${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libscene_analyzer.a" \\
"${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libh264_enc.a" \\
"${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libcolor_space_converter.a" \\
"${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libumc_io.a" \\
"${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libmedia_buffers.a" \\
"${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libcommon.a" \\
"${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libumc.a" \\
"${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libvm_plus.a" \\
"${UMC_AVCODEC_DIR}/_bin/linux$(IPP_LIB_ARCH)_/lib/libvm.a"
I have added -lpthread before any of the ipp, uic or umc library lists.
Can anyone tell me what it is I am doing wrong?
Thanks.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Adding -lpthread to the application that links to my shared object fixes this. Is there any way to avoid this? Is there a way to link to pthread in my shared object without requiring users to link to pthread in their own applications?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is resolved.
Listing -lpthread after the IPP libraries fixed this issue.
Listing -lpthread after the IPP libraries fixed this issue.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Nice to know that it works fine, In Linux, linking order is very important.
Regards,
Naveen Gv
Nice to know that it works fine, In Linux, linking order is very important.
Regards,
Naveen Gv
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page