- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everyone.
This is actually a post from the IPP forum. I haven't had a response despite 60 people reading the post so I thought maybe someone on this forum would know the answer. I'm using Intel Compiler 11.1 on RedHat and trying to link to the IPP libraries. I'm very inexperienced with both Linux as well as operating the compiler from the command line (up until now all of my work has been Visual Studio based).
I'm having a hell-of-a-time getting the Intel compiler to link properly to the IPP *.a files. I've been successful doing this on my Windows machine using VS2008, but I ran into trouble when I moved over to Linux and ICC command line mode.
When I compile my project I get a bunch of errors all like "undefined reference to 'ippsSVD_64f_D2'", "undefined reference to 'ippmTranspose_64f;", etc. To try to remedy these errors I've done the following:
1) "export LD_LIBRARY_PATH=/opt/intel/Compiler/11.1/059/ipp/ia32/sharedlib:$LD_LIBRARY_PATH" in command line. This was from the IPP documentation.
2) Added the following to the compiler invocation statement:
"-L/opt/intel/Compiler/11.1/059/ipp/ia32/lib libippsemerged.a libippsmerged.a libippsremerged.a libippsrmerged.a libippmemerged.a libippmmerged.a libippcore.a"
Upon compiling I get several errors of the following:
"icpc: error #10236: File not found: 'libippsemerged.a'"
"icpc: error #10236: File not found: 'libippsmerged.a'"
.
.
etc
I've made some progress by getting rid of the "-L/..." option (which I don't think I was using properly) and have instead listed the entire path prior to each lib file as in:
"/opt/intel/Compiler/11.1/059/ipp/ia32/lib/libippsemerged.a /opt/intel/Compiler/11.1/059/ipp/ia32/lib/libippsmerged.a /opt/etc..."
I no longer get the "Cannot find file" errors, but now I'm getting errors of the following:
"/opt/intel/Compiler/11.1/059/ipp/ia32/lib/libippsrmerged.a(ippssvd_split_g9_ippsSVD_64f_D2_I.o): In function 'g9_ippsSVD_64f_D2_I':
ippssvd_split_g9_ippsSVD_64f_D2_I.i:(text+0x6e): undefined reference to 'g9_ipp_sMalloc_64f'
ippssvd_split_g9_ippsSVD_64f_D2_I.i:(.text+0x134d): undefined reference to 'g9_ippsFree'
etc...
Anyone have any ideas what could be the problem? As always, thanks.
When I compile my project I get a bunch of errors all like "undefined reference to 'ippsSVD_64f_D2'", "undefined reference to 'ippmTranspose_64f;", etc. To try to remedy these errors I've done the following:
1) "export LD_LIBRARY_PATH=/opt/intel/Compiler/11.1/059/ipp/ia32/sharedlib:$LD_LIBRARY_PATH" in command line. This was from the IPP documentation.
2) Added the following to the compiler invocation statement:
"-L/opt/intel/Compiler/11.1/059/ipp/ia32/lib libippsemerged.a libippsmerged.a libippsremerged.a libippsrmerged.a libippmemerged.a libippmmerged.a libippcore.a"
Upon compiling I get several errors of the following:
"icpc: error #10236: File not found: 'libippsemerged.a'"
"icpc: error #10236: File not found: 'libippsmerged.a'"
.
.
etc
I've made some progress by getting rid of the "-L/..." option (which I don't think I was using properly) and have instead listed the entire path prior to each lib file as in:
"/opt/intel/Compiler/11.1/059/ipp/ia32/lib/libippsemerged.a /opt/intel/Compiler/11.1/059/ipp/ia32/lib/libippsmerged.a /opt/etc..."
I no longer get the "Cannot find file" errors, but now I'm getting errors of the following:
"/opt/intel/Compiler/11.1/059/ipp/ia32/lib/libippsrmerged.a(ippssvd_split_g9_ippsSVD_64f_D2_I.o): In function 'g9_ippsSVD_64f_D2_I':
ippssvd_split_g9_ippsSVD_64f_D2_I.i:(text+0x6e): undefined reference to 'g9_ipp_sMalloc_64f'
ippssvd_split_g9_ippsSVD_64f_D2_I.i:(.text+0x134d): undefined reference to 'g9_ippsFree'
etc...
Anyone have any ideas what could be the problem? As always, thanks.
-L
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - lkeene
1) "export LD_LIBRARY_PATH=/opt/intel/Compiler/11.1/059/ipp/ia32/sharedlib:$LD_LIBRARY_PATH" in command line. This was from the IPP documentation.
2) Added the following to the compiler invocation statement:
"-L/opt/intel/Compiler/11.1/059/ipp/ia32/lib libippsemerged.a libippsmerged.a libippsremerged.a libippsrmerged.a libippmemerged.a libippmmerged.a libippcore.a"
2) Added the following to the compiler invocation statement:
"-L/opt/intel/Compiler/11.1/059/ipp/ia32/lib libippsemerged.a libippsmerged.a libippsremerged.a libippsrmerged.a libippmemerged.a libippmmerged.a libippcore.a"
From1)your application will be built with dynamic libraries on Linux.
But in 2) you just added static library files.
Please try using options -l
-lippsemerged -lippsmerged -lippsremerged -lippsrmerged -lippmemerged -lippmmerged -lippcore
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Victor Pasko (Intel)
Hi,
From1)your application will be built with dynamic libraries on Linux.
But in 2) you just added static library files.
Please try using options -l(if this libraries are correctly listed):
-lippsemerged -lippsmerged -lippsremerged -lippsrmerged -lippmemerged -lippmmerged -lippcore
From1)your application will be built with dynamic libraries on Linux.
But in 2) you just added static library files.
Please try using options -l
-lippsemerged -lippsmerged -lippsremerged -lippsrmerged -lippmemerged -lippmmerged -lippcore
Hello Victor, and thank you for the reply!
I'm afraid I don't fully understand your instructions. I'm actually trying to link statically...should I then execute a different command in "1)"? If so, what is the proper command?
Lastly, what is meant by "-I"?
Thank in advance for the help,
L
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - lkeene
Hello Victor, and thank you for the reply!
I'm afraid I don't fully understand your instructions. I'm actually trying to link statically...should I then execute a different command in "1)"? If so, what is the proper command?
Lastly, what is meant by "-I"?
Thank in advance for the help,
L
Hi, lkeene
I think Victor refers to-l instead of -I. See user guide:
l
Tells the linker to search for a specified library when linking.
Syntax
Linux and Mac OS X: -lstring
Arguments
string Specifies the library (libstring) that the linker should search.
Also youmay add option "-static" to avoid link with shared libraries. Try:
-lippsemerged -lippsmerged -lippsremerged -lippsrmerged -lippmemerged -lippmmerged -lippcore -static
Thanks.

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