Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Shared Libraries

Lord_Bharath_Bhushan
398 Views

Hi,

I get the following error while executing a C program compiled with icc.

progName: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory

I know that I must have the LD_LIBRARY_PATH pointing to /opt/intel/composer_xe/compiler/lib and similar. How do I get around this if I am distributing the binaries or sending the binaries over to a friend who does not have the intel shared libraries? I tried static linking and got the warning -

progName.c:(.text+0x70): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

However, things work fine if I choose not to use the intel shared libraies (not use the -shared-intel switch).

  • When do I use intel shared libraries over the system default libraries?
  • If I have to use the intel shared library, how do I distribute the binaries I compile using icc?
0 Kudos
5 Replies
TimP
Honored Contributor III
398 Views

The warning about glibc simply tells you that when you move the binary to another system, that system must have a glibc installed as new as the one on the build system.

You could download the icc shared library distributable package from https://registrationcenter.intel.com and include that, or the specific required .so libraries, with your binary.

0 Kudos
Lord_Bharath_Bhushan
398 Views

I have a student license (http://software.intel.com/en-us/intel-education-offerings). Does that entitle me to distribute the shared libraries? non-commercially?

Also, I am unable to find a link to download just the shared libraries. Do I just include files from /opt/intel/composer_xe_2013.x.y/comiler/lib/intel64 ? or any other product? What license am I bound by?

0 Kudos
TimP
Honored Contributor III
398 Views

student license doesn't cover distribution

0 Kudos
Lord_Bharath_Bhushan
398 Views

Thank you :-)

Should I use a commercial license, how do I package the shared libraries? Where do I get the libraries from? /opt/intel/composer_xe_2013.x.y/comiler/lib/intel64 ?

Durely, I should not have to ask customers to install the developer tools and source a script ;-)

None of the links here - https://registrationcenter.intel.com have anything that looks like a redistributable share library. Or it it because I am using a student license?

0 Kudos
TimP
Honored Contributor III
398 Views

If you are distributing to customers, yes, you must have a commercial license.  Then you have the choice of downloading the distributable library package for your compiler from https://registrationcenter.intel.com and including it in your install package, or just including the smaller group of libraries you need.

0 Kudos
Reply