This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Linking a third-party library with my own library


Hi Rodrigo,
On Sun, Mar 08, 2009 at 02:04:54PM -0400, Rodrigo Dominguez wrote:
> g++ -shared [other switches] -L/path-to-libpapi [more switches] -lpapi -o
> mylibrary.so mylibrary.o
> The command executes without errors. However, when I run 'ldd mylibrary.o' I
> get:
> libpapi.so.3 => not found
> 
> I can see that libpapi.so.3 exists under /path-to-libpapi. Needless to say,
> when I try to load my library it complains about not being able to find
> libpapi.so.3.
> 
> What am I missing?

The compiler did its work correctly, however, as you use static linkage,
you have to tell "ldd" where to look for the library libpapi.so.3:
 Either you can do it system-wide by changing /etc/ld.so.conf (on
linux), or by defining the environment-variable LD_LIBRARY_PATH
e.g. in bash,

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path-to-libpapi ldd mylibrary.o

should work (You could also use LD_LIBRARY_PATH=/path-to-libpapi,
however I repeated the $LD_LIBRARY_PATH for the case that this variable
had already been defined...)


HTH,

Axel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]