tags:

views:

52

answers:

2

I have a collection of dynamic libraries that I want to link to in /usr/local/lib, how can I do this using gcc without setting my LD_LIBRARY_PATH (i have heard it is bad to do this fora number of reasons). I have spent an hour looking at this on the internet, and fiddling with command line arguments, the only way I got it to work was using the -static -I/usr/local/lib/ flag, but this converts dynamic libraries to static libraries, and the compiler throws up some warnings.

Thanks for your help

+1  A: 

Add /usr/local/lib to the loader configuration in /etc/ld.so.conf and run ldconfig.

Ignacio Vazquez-Abrams
+1  A: 

You can set the system wide search directories for ldd (the dynamic linker) in /etc/ld.so.conf. In many distributions (well, mine) there is a /etc/ld.so.conf.d/ directory, from which the /etc/ld.so.conf includes all *.conf files. You can add the directory directly in ld.so.conf or add a .conf file in the directory.

Of course, you'll need root access to do this.

Oh, yeah: as Ignacio says, run ldconfig after changing these config files.

Tim Schaeffer