`
popi
  • 浏览: 9204 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

ldconfig

阅读更多
1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到

2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到
比如安装了一个mysql到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就需要在/etc/ld.so.conf下面加一行/usr/local/mysql/lib,保存过后ldconfig一下,新的library才能在程序运行时被找到。

3. 如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。那也可以,就是export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时候使用。

4. ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。编译的时候还是该加-L就得加,不要混淆了。

5. 总之,就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事。

LD_LIBRARY_PATH 这个环境变量是大家最为熟悉的,它告诉loader:在哪些目录中可以找到共享库。可以设置多个搜索目录,这些目录之间用冒号分隔开。在linux下,还提供了另外一种方式来完成同样的功能,你可以把这些目录加到/etc/ld.so.conf中,或则在/etc/ld.so.conf.d里创建一个文件,把目录加到这个文件里。当然,这是系统范围内全局有效的,而环境变量只对当前shell有效。按照惯例,除非你用上述方式指明,loader是不会在当前目录下去找共享库的,正如shell不会在当前目前找可执行文件一样。
分享到:
评论

相关推荐

    为什么ldconfig后,会自动生成so的软链接 ldconfig就会生成librudp.so软连接

    本文将详细解释为什么`ldconfig`运行后会自动生成`so`的软链接,以及`ldconfig`的工作原理和用法。 首先,我们需要了解`ldconfig`的作用。`ldconfig`的主要任务是维护`/etc/ld.so.cache`文件,这个文件包含了系统...

    浅谈Linux中ldconfig和ldd的用法

    ### Linux中ldconfig和ldd的用法详解 #### 一、引言 在Linux环境中,程序员和系统管理员经常会遇到程序因为缺失某些共享库而无法正常运行的问题。为了解决这类问题,Linux提供了两个非常实用的工具:`ldd` 和 `...

    libgd相关资源文件

    其作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新搜索路径,需要运行一下ldconfig,使所有的库文件都被缓存到文件...

    浅析python 动态库m.so.1.0错误问题

    一旦找到库的位置,例如`/usr/local/lib/libpython3.6m.so.1.0`,需要将其路径添加到`/etc/ld.so.conf`文件中,然后执行`ldconfig`使更改生效: ```bash vim /etc/ld.so.conf # 添加新的一行:/usr/local/lib/ ...

    Linux编程动态库知识

     2.ldconfig一般会创建soname,但不创建linker name(libname.so),后者一般安装库时创建  3.暂时添加动态库目录LD_LIBRARY_PATH,一般用于测试和开发  4.LD_PRELOAD预加载库。用于提前加载,紧急用途,或是...

    增加自己的so库的办法,默认情况下,编译器只会使用lib和usrlib这两个目录下的库文件

    `ldconfig`会扫描指定的目录,并将这些目录下的库文件信息缓存到`/etc/ld.so.cache`文件中,这样系统在运行时就可以快速地找到所需的库。 1. **修改`ld.so.conf`配置**: - `ldconfig`通常根据`/etc/ld.so.conf`...

    Linux系统上搭建HackRF环境

    sudo ldconfig ``` 接着编译 HackRF: ``` git clone --progress http://github.com/mossmann/hackrf.git cd hackrf/host mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON make sudo make install sudo ...

    linux 查看程序运行找不到库的问题(设置环境变量)

    如果新的库位于标准库路径下(如`/usr/local/lib`),安装完成后运行`sudo ldconfig`即可。 还有一种情况是程序需要特定版本的库,而系统已经存在一个不同版本。这时可以使用`ldd`命令检查程序的动态链接,找出它...

    libstdc++.so.6.0.22

    libstdc++.so.6.0.22 本工具是TensorFlow运行必需 版本为22

    libstdc++.so.6.0.24

    解决安装tensorflow出错。 ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by /root/miniconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/_pywrap_...

    centos 6.5 安装 FFmpeg及转码插件

    [root@localhost lame-3.99.5]# ldconfig 安装yasm [root@localhost ffmpeg]# tar -zxvf yasm-1.2.0.gz [root@localhost yasm-1.2.0]# cd yasm-1.2.0 [root@localhost yasm-1.2.0]# ./configure --enable-shared ...

    Linux系统维护和开发命令详解.pdf

    本文主要讲解了Linux系统中的几个关键命令,包括gcc、diff、patch、ldd、ldconfig、ar、set、unset以及chattr等,这些都是进行Linux系统维护和开发的基础。 1. **gcc命令**:gcc是GNU C和C++编译器,用于将源代码...

    libstdc++.so.6.0.24 64位分享

    libstdc++.so.6.0.24 64位分享

    最新CertInside 050-710题库分享

    - 使用 `ldconfig` 更新缓存是安装新的动态库或移除旧的动态库之后的一个必要步骤。 --- #### 问题5: 作为 root 用户,你使用 help options 命令来更改打印机选项,如页面大小。这些选项将保存到哪个文件? - **...

    Libzip 版本过低或提示reinstall解决方法

    ldconfig -p | grep libzip ``` 如果发现版本确实过低,那么按照以下步骤进行升级: 1. **卸载旧版libzip**: 使用以下命令删除已安装的libzip和libzip-devel(开发库): ```bash yum remove libzip -y ```...

    Linux培训系列第五讲

    - **ld.so.cache**:这是一个由`ldconfig`工具维护的缓存文件,用于存储已经解析好的共享库路径。每当`ldconfig`被运行时,它会根据`ld.so.conf`中指定的路径重新生成`ld.so.cache`文件。 #### ldconfig技巧 - **...

    MIMO OFDM 联合雷达通信 (JRC) 收发器

    要求 GnuRadio v3.8.5.0 (分支:maint-3.8) ...sudo ldconfig 用法 数据包生成器应用程序: 此应用程序可以生成数据包 (DATA) 或空数据包 (NDP)。它利用内部 UDP 套接字将数据包发送到 GnuRadio 流程图。

    linux动态链接的基本知识

    2. **使用ldconfig命令**:`ldconfig`命令用于更新缓存文件`/etc/ld.so.cache`,从而确保动态链接器能够识别最新的共享库位置信息。这通常是在安装新的共享库或更改了共享库路径后需要执行的操作。 3. **ldd命令**:...

Global site tag (gtag.js) - Google Analytics