by NIX CRAFT on APRIL 9, 2010 · 3 COMMENTS· LAST UPDATED AUGUST 11, 2013
in GNU C / C++, LINUX, PROGRAMMING
I've compile and installed a library at /usr/local/lib/libapp2.so -> libapp2.so.1.4.3. How do I set the Library path under Linux operating systems?
You need to use ldconfig config file and ldconfig command which creates the necessary links and cache to the most recent shared libraries found in the directories specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories such as /lib64 or /usr/lib64 (/lib or /usr/lib on 32 bit systems).
Tutorial details
Difficulty
Intermediate (rss)
Root privileges
Yes
Requirements
GNU gcc
Estimated completion time
10m
The /etc/ld.so.conf contains lib settings which can be used to add or delete paths. However, you need to simply drop your config file in /etc/ld.so.conf.d/ directory and it will be used by /sbin/ldconfig to configure dynamic linker run time bindings.
Create a file called /etc/ld.so.conf.d/myapp.conf:# vi /etc/ld.so.conf.d/myapp.conf
Add the following path:
/usr/local/lib
Save and close the file.
You must run the following command to activate path:# ldconfig
# ldconfig -v | less
OR# ldconfig -v | grep /usr/local/lib
Sample outputs:
/usr/local/lib: libGeoIP.so.1 -> libGeoIP.so.1.4.6 libGeoIPUpdate.so.0 -> libGeoIPUpdate.so.0.0.0 /usr/lib64/mysql: libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0 libmysqlclient.so.15 -> libmysqlclient.so.15.0.0 /lib: libutil.so.1 -> libutil-2.5.so
Simply, delete the file:# rm /etc/ld.so.conf.d/myapp.conf
# ldconfig
Simply edit the file and reload the changes:# vi /etc/ld.so.conf.d/myapp.conf
# ldconfig
You can use the following gcc$ gcc -Wl,-R/path/to/lib -I/path/to/include -L/path/to/lib -o myAppName mycode.c -llibapp2