首先需要指出,如果你的shell已经是root管理情况,那就直接按照转载的方法执行就可以了。
如果你是非root的正常访问模式,那就在执行每一条指令的最开始加入sudo,以下为非root模式。
例如,需要配置opencv的动态链接库,那首先打开目录
cd /etc/ld.so.conf
然后,新建一个名为opencv.conf的文件,并在文件里添加你所安装的opencv的动态库绝对路径,可以是多个路径
sudo gedit opencv.conf
如果你没有安装gedit请先安装,如果你在该路径下没有opencv.conf文件,上一条指令会直接新建,有的话就会直接用gedit打开。打开后,在里面添加路径并保存(Ctrl+s),注意是绝对路径
/usr/lib
/XX/XX/XX/lib
这里/XX/XX/XX/lib表示任意的路径。最后,在shell中执行sudo ldconfig即可
除此之外,还有一种方法,就是在你需要执行指令的终端shell里加入临时的环境变量,例如
export LD_LIBRARY_PATH=/home/xxx/artoolkitx-master/Source/depends/linux/lib:$LD_LIBRARY_PATH
ldconfig
其中$LD_LIBRARY_PATH表示你已经有的库路径,冒号:是分隔符,/home/xxx/artoolkitx-master/Source/depends/linux/lib表示你现在需要的路径。之后,我们可以通过echo $LD_LIBRARY_PATH来查看当前的环境变量,千万记住,这个只是临时的,意味着你以后要用的任何时候,只要开启了新的终端,就必须重新添加一次.
以上做法,只是临时设置变量 LD_LIBRARY_PATH ,下次开机,一切设置将不复存在;把这个值持续写到 LD_LIBRARY_PATH 里可以在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次。加到 ~/.bashrc 中,在该文件的未尾,可采用如下语句来使设置生效:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
修改完后,记得关掉当前终端并重新打开一个新的终端,从而使上面的配置生效。
不过这个环境变量是基于shell的,也就是说只有在当前设置了的shell里才会有作用,因此每次打开新的shell运行程序不停地设置LD_LIBRARY_PATH,是一件非常麻烦的事情,所以我们就会想有不有什么一劳永逸地方法,使得设置之后就不用再去设置了?答案是肯定的,即在~/目录下打开.bash_profile文件,设置环境变量如下:
LD_LIBRARY_PATH=dir:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
LD_LIBRARY_PATH 这个环境变量是大家最为熟悉的,它告诉loader:在哪些目录中可以找到共享库。可以设置多个搜索目录,这些目录之间用冒号分隔开。在linux下,还 提供了另外一种方式来完成同样的功能,你可以把这些目录加到/etc/ld.so.conf中,然后调用ldconfig。当然,这是系统范围内全局有效 的,而环境变量只对当前shell有效。按照惯例,除非你用上述方式指明,loader是不会在当前目录下去找共享库的,正如shell不会在当前目前找 可执行文件一样。
——————————————————————以下为转载内容————————————————-—————————
一、库文件的搜索路径:
1、在配置文件/etc/ld.so.conf中指定动态库搜索路径(需要添加其它库文件的路径,在文件的最后添加具体的路径即可 [ 如:/usr/local/lib ],添加后保存退出,然后在命令行ldconfig
2、通过环境变量LD_LIBRARY_PATH指定动态库搜索路径(当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号”:”分隔)
3、在编译目标代码时指定该程序的动态库搜索路径(还可以在编译目标代码时指定程序的动态库搜索路径。 这是通过gcc 的参数”-Wl,-rpath,”指定,当指定多个动态库搜索路径时,路径之间用冒号”:”分隔)
4、默认的动态库搜索路径/lib
5、默认的动态库搜索路径/usr/lib
搜索的先后顺序是:
1.编译目标代码时指定的动态库搜索路径;
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib;
5.默认的动态库搜索路径/usr/lib。
二、Shell可执行程序命令文件搜索路径:
1.查看所有的搜索路径:echo $PATH
2.添加新的路径:
1)只对当前shell窗口有效:
export PATH=$PATH:/new path
2)对所有窗口有效:
修改当前用户的.bash_profile文件,在PATH=$PATH……后添加”:/new path”;
保存退出后,需要在当前窗口中执行”. .bash_profile”,更新配置,之后用echo $PATH显示更新后的路径,可以看到新加入的路径;
注意:在重新登录前所有新打开的shell窗口要用到新的路径都需要执行”. .bash_profile”,更新配置,因为.bash_profile文件的内容在用户登录时就读取了
转至点击打开链接