Loading...
You are not logged-in Login/Register





  • Posts   Search Threads
  • frenetJanuary 3, 2012 3:32 PM PST   
    Linking problems with IPP 7 in Ubuntu 11.10

     

    I'm moving from IPP6 to IPP7 and am having issues when linking an application to my shared object (which links to the ipp libraries). I had similar problems with IPP6 (http://software.intel.com/en-us/forums/showthread.php?t=82491) but now am having issues on both 32 and 64-bit linux and I cannot seem to resolve this the same way. 

    I am statically linking to the ipp, umc & uic libraries. I am using IPP 7.0.4.191 and have downloaded the 7.05.059 sample code. I am using g++.

    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 link errors.

    Originally I was getting the following errors when building the application (first few errors):

     

    /usr/bin/ld: warning: libiomp5.so, needed by ../../lib/libfrenet .so, not found (try using -rpath or -rpath-link)
    /usr/bin/ld: warning: libintlc.so.5, needed by ../../lib/libfrenet .so, not found (try using -rpath or -rpath-link)
    /usr/bin/ld: warning: libimf.so, needed by ../../lib/libfrenet .so, not found (try using -rpath or -rpath-link)
    ../../lib/libfrenet .so: undefined reference to `omp_get_max_threads@VERSION'
    ../../lib/libfrenet .so: undefined reference to `GOMP_parallel_sections_start@VERSION'
    ../../lib/libfrenet .so: undefined reference to `omp_init_lock@VERSION'
    ../../lib/libfrenet .so: undefined reference to `__kmpc_barrier@VERSION'

    I then set my LD_LIBRARY_PATH to point to the directory containing libiomp, libintlc and libimf and now get the following error when building my app:

    /opt/intel/ipp/7.0.4.191/compiler/lib/ia32/libiomp5.so: undefined reference to `pthread_atfork'

    I do have -lpthread specified for both the shared object and the application, but the error still occurs. Below is the link info for my shared object:

    UIC_LIBS = "${UIC_IMAGE_DIR}/_bin/$(UIC_LIB_ARCH)/lib/uic_core_l.a" \

               "${UIC_IMAGE_DIR}/_bin/$(UIC_LIB_ARCH)/lib/uic_io_l.a" \
       "${UIC_IMAGE_DIR}/_bin/$(UIC_LIB_ARCH)/lib/uic_jpeg_enc_l.a" \
       "${UIC_IMAGE_DIR}/_bin/$(UIC_LIB_ARCH)/lib/uic_jpeg_dec_l.a" \
       "${UIC_IMAGE_DIR}/_bin/$(UIC_LIB_ARCH)/lib/uic_jpeg_common_l.a" 

    UMC_LIBS = "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libmpeg4_mux.a" \

               "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libscene_analyzer.a" \
       "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libh264_enc.a" \
       "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libcolor_space_converter.a" \
         "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libumc_io.a" \
           "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libmedia_buffers.a" \
       "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libcommon.a" \
       "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libumc.a" \
       "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libvm_plus.a" \
          "${UMC_AVCODEC_DIR}/_bin/$(UMC_LIB_ARCH)/lib/libvm.a"

    IPP_STATIC_LIBS = -L/work/netcdrom/Intel/IPP/7.0.4.191/lib/$(IPP_LIB_ARCH) \

                                            -lippch_t \
    -lippdc_t \
    -lippcc_t \
    -lippcv_t \
    -lippj_t  \
    -lippvc_t \
    -lippi_t  \
    -lipps_t  \
    -lippcore_t

     

    IPP_SHARED_LIBS = -L /opt/intel/ipp/7.0.4.191/compiler/lib/$(IPP_LIB_ARCH) -liomp5 -lintlc -limf

    LIBS = -lraw1394 -lrt ${UIC_LIBS} ${UMC_LIBS} ${IPP_STATIC_LIBS} ${IPP_SHARED_LIBS} ${BOOST_LIB} -lpthread
    Thanks for any help on this.

     



    Chao Y (Intel)January 4, 2012 10:27 PM PST
    Rate
     
    Linking problems with IPP 7 in Ubuntu 11.10

    Hello,

    It looks that the code is threaded with GNU OpenMP libraries, and the JPEG sample code is threaded at the high level sample. So I suggest you linking with non threaded Intel IPP library.

    Change:
       -lippch_t \
        -lippdc_t \
        -lippcc_t \
        -lippcv_t \
        -lippj_t \
        -lippvc_t \
        -lippi_t \
        -lipps_t \
        -lippcore_t

    to:
        -lippch_l \
        -lippdc_l \
        -lippcc_l \
        -lippcv_l \
        -lippj_l \
        -lippvc_l \
        -lippi_l \
        -lipps_l \
        -lippcore_l

    It does not need to add the -liomp5, but added the -lgomp -lpthread at the linkage frag.

    Thanks,
    Chao



Forum jump:  

Intel Software Network Forums Statistics

17,025 users have contributed to 48,319 threads and 172,758 posts to date.

In the past 24 hours, we have 11 new thread(s) 54 new posts(s), and 47 new user(s).

In the past 3 days, the most popular thread for everyone has been Optimalization of sine function\'s taylor expansion The most posts were made to Most likely, the issue is that The post with the most views is Optimalization of sine function\'s taylor expansion

Please welcome our newest member redfruit83


For more complete information about compiler optimizations, see our Optimization Notice.