Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

Problem with linking IPP libraries

Lincoln_Greenhill
139 Views
I am trying to compile a program which uses functionippsMalloc_8u. I believe this function is from ipps library. But I am getting following error:

[bash]gcc ipp0.c -L/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64/ -lippcore -lipps /usr/bin/ld: warning: libiomp5.so, needed by /opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64//libippcore.so, not found (try using -rpath or -rpath-link) /opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64//libippcore.so: undefined reference to `omp_get_max_threads@VERSION' . . . undefined reference to `kmp_create_affinity_mask@VERSION'/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64//libippcore.so: undefined reference to `kmp_get_affinity@VERSION' collect2: ld returned 1 exit status[/bash]
The filelibiomp5.so is present in the same directory (/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64/)
But how should I link it while compiling the code?
0 Kudos
2 Replies
SergeyKostrov
Valued Contributor II
139 Views
I am trying to compile a program which uses functionippsMalloc_8u. I believe this function is from ipps library.

[SergeyK] Yes, that's correct. That function is from a Signal Processing domain.

But I am getting following error:

  1. gccipp0.c-L/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64/-lippcore-lipps
  2. /usr/bin/ld:warning:libiomp5.so,neededby/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64//libippcore.so,
    notfound(tryusing-rpathor-rpath-link)
  3. /opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64//libippcore.so:undefinedreferenceto`omp_get_max_threads@VERSION'

    [SergeyK] Have you seen that warning?

Best regards,
Sergey
Ying_H_Intel
Employee
139 Views
Hi Lincoln

In general, a common command to build ipp program like :

gcc main.cpp -I/opt/intel/composer_xe_2011_sp1.10.319/ipp/include -L/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64/ -L/opt/intel/composer_xe_2011_sp1.10.319/compiler/lib/intel64-lipps -lippcore -liomp5

The OpenMP library libiomp5is from Intel Compiler, located in Compilerlib directory. But if you haveitpresented inIPP directory, the command can be
gcc main.cpp -I/opt/intel/composer_xe_2011_sp1.10.319/ipp/include -L/opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64/ -lipps -lippcore -liomp5

Thelibiomp5.soshould be linked explicitly.

Best Regards,
Ying





Reply