Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Problem with linking IPP libraries

Lincoln_Greenhill
554 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
554 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
0 Kudos
Ying_H_Intel
Employee
554 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





0 Kudos
Reply