i007.cc

i007.cc

优先队列-降维打击

Linux中LIBRARY_PATH与LD_LIBRARY_PATH区别

/lib是内核级的:包含被 /bin/ 和 /sbin/ 中的程序使用的库文件

/usr/lib是系统级的:目录 /usr/lib/ 中含有更多用于用户程序的库文件

/usr/local/lib是用户级的:用户如果放入.so库编译和运行时都要指定动态链接库的路径。如下方式:

1、LIBRARY_PATH:环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径.

指定gcc编译需要链接动态链接库的目录。设置libtest1和libtest2目录
# export LIBRARY_PATH=libtest1:libtest2:$LIBRARY_PATH //或写入:/etc/profile配置文件中

# gcc *.c -L./libtest1 -L./libtest2 -ltest1 -ltest2 //编译时分别链接libtest1目录下的libtest1.so库与libtest2目录的libtest2.so库。

2、LD_LIBRARY_PATH:环境变量用于在程序运行期间查找动态链接库时指定除了系统默认路径(/usr/lib)之外的路径.

可执行文件运行程序之前执行:

# export LD_LIBRARY_PATH=libtest1:libtest2:$LD_LIBRARY_PATH  //或写入:/etc/profile配置文件中

# ./program //运行可执行程序

 

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

#export C_INCLUDE_PATH=$HOME/include:$C_INCLUDE_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib64/mysql
#export PATH=/usr/local/bin:$PATH
export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib64/mysql

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

 

发表回复