首页 > 系统相关 >Linux 设置 LD_LIBRARY_PATH

Linux 设置 LD_LIBRARY_PATH

时间:2023-05-10 11:34:05浏览次数:55  
标签:LD shell LIBRARY 设置 动态链接库 PATH

转载:https://www.cnblogs.com/zhanggaofeng/p/7535034.html

 

在Linux下,如果自己写好一个动态链接库,需要在其他程序里调用,则需要让这些程序能找到这个动态链接库,如果设置的不对,就会出现类似的错误:
error while loading shared libraries: libmysqlclientso.so.0: cannot open shared object file: No such file or directory
这是因为没有把动态链接库的路径放到变量LD_LIBRARY_PATH里。
可以执行=shell命令:export LD_LIBRARY_PATH=自己的动态链接库路径:$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不会在当前目前找 可执行文件一样。

标签:LD,shell,LIBRARY,设置,动态链接库,PATH
From: https://www.cnblogs.com/lh03061238/p/17387474.html

相关文章

  • npm ERR! ERESOLVE could not resolve
    报错信息: 解决方法:(29条消息)npmERR!codeERESOLVEnpmERR!ERESOLVEcouldnotresolvedependency_npmerr!codeeresolvenpmerr!eresolvecouldnot_南北极之间的博客-CSDN博客防止连接不能用存档一下npminstall******--save --force--legacy-peer-depsnpm......
  • firewalld规则配置
    firewalld规则配置一、概念动态防火墙启动新规则时,不会像iptables一样,先清空规则,再启动所有规则,如此会对现在程序有影响,哪怕只是一条规则。而firewalld规则变更不需要对整个防火墙规则重载,可直接添加新规则iptables与firewalld的关系firewalld底层使用iptables作为防......
  • 建造者模式(Builder Pattern)
    模式动机建造者模式(BuilderPattern)是最复杂的创建型模式,它用于创建一个包含多个组成部分的复杂对象,可以返回一个完整的产品对象给用户。它通过将客户端与包含多个组成部分的复杂对象的创建过程分离,使得客户端无需知道复杂对象的内部组成部分与装配方式,只需要知道建造者的类型......
  • CMake报告:Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)错误
    原因是电脑缺少pkg-config库Linux可以直接apt-get即可:sudoapt-getinstallpkg-config下面详细说一下Windows如何手动安装:转到http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/下载文件pkg-config_0.26-1_win32.zip将文件bin/pkg-config.exe解压缩到your......
  • Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
    Mac安装paddlehub出现Buildingwheelsforcollectedpackages:opencv-python,ffmpy,jieba,seqeval,futureBuildingwheelforopencv-python(pyproject.toml)...解决方法pipinstallopencv-python-ihttps://pypi.tuna.tsinghua.edu.cn/simple--verbose......
  • 笛卡尔树Kattis-Scaffolding
    笛卡尔树Kattis-Scaffolding注释已经写在代码里了,注意下建树就行#include<bits/stdc++.h>/*先对题意进行分析,每次带m根柱子,进行x轮,每次往左/右/上搭建,问x的最小值?一开始在想,怎么就会有最小值呢?后来发现题目说不能往下走我们还是把图看成一棵树就是说你可以向两个子节点去走,......
  • Linux(centos7.9)搭建ldap服务器
    一.LDAP是什么 后期更新,目前只搭建了服务器 二.linux搭建LDAP服务器以下服务器信息为该文档安装Radius服务环境 服务器信息:CentOS7  内核版本:3.10.0-1160.el7.x86_64 1.使用yum进行安装yum-yinstallopenldapcompat-openldapopenldap-clientsopenldap-serv......
  • pathon
    #第一步,建立字典dic_menu:dic_menu={"蔬菜":{"青菜":"绿色","胡萝卜":"橙色","茄子":"紫色","毛豆":"绿色"},"水果":{"山竹":"紫色","香蕉":"黄色",&q......
  • 设置键盘只能输入数字( phoneNumTextField.keyboardType = UIKeyboardTypeNumberPad;)
    //手机号码textFieldphoneNumTextField=[[UITextFieldalloc]initWithFrame:CGRectMake(0,0,[[UIScreenmainScreen]bounds].size.width,40)];UIView*phoneImage=[[UIViewalloc]initWithFrame:CGRectMake(0,0,40,40)];phoneImage.backgroundColor=[U......
  • 启动flink显示ERROR: JAVA_HOME is not set and could not be found.
    问题:JAVA_HOME存在,但启动flink时出现ERROR:JAVA_HOMEisnotsetandcouldnotbefound.原因:环境变量加载顺序不对#/etc/profile.d/hadoop.sh#...exportHADOOP_CLASSPATH=`hadoopclasspath`JAVA_HOME是在java.sh里定义的,而hadoop.sh按照字典序先于java.sh加......