linux - locate 找到库但 ldconfig 没有

标签 linux shared-libraries

我正在使用 Centos 6.6,并且有一个共享库,该构建生成由多个可执行文件使用,并且使用此共享库的任何可执行文件都找不到它,正如 ldd 所见。 我可以找到图书馆:

$ locate libcs.so.1
/opt/cloudshield/lib/libcs.so.1

ldd 显示以下内容:

$ sudo ldd /opt/cloudshield/lib/libcs.so.1
ldd: warning: you do not have execution permission for `/opt/cloudshield/lib/libcs.so.1'
    linux-vdso.so.1 =>  (0x00007ffff4fff000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f7a0fd56000)
    /lib64/ld-linux-x86-64.so.2 (0x000000340ba00000)

$ sudo ldconfig -v | grep libcs.so.1

是不是内核库linux-vdso.so.1的问题?

Executable cannot find the library libcs.so.1:
[fpeter@localhost radius]$ ldd radius
    `linux-vdso.so.1 =>  (0x00007fff634b4000)
    libconfd.so => /home/fpeter/trunk/thirdparty/tailf/confd/lib/libconfd.so (0x00007f5db20e6000)
    libcs.so.1 => not found
    libpthread.so.0 => /lib64/libpthread.so.0 (0x000000340c600000)
    libc.so.6 => /lib64/libc.so.6 (0x000000340c200000)
    libm.so.6 => /lib64/libm.so.6 (0x000000340ce00000)
    libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x0000003ba4a00000)
    /lib64/ld-linux-x86-64.so.2 (0x000000340ba00000)
    libdl.so.2 => /lib64/libdl.so.2 (0x000000340be00000)
    libz.so.1 => /lib64/libz.so.1 (0x000000340d600000)

最佳答案

/opt/cloudshield/lib/ 添加到您的 LD_LIBRARY_PATH 环境变量,例如:

LD_LIBRARY_PATH=/opt/cloudshield/lib
export LD_LIBRARY_PATH

另见 How to build library ithoutsudo或者 shared libraries .

关于linux - locate 找到库但 ldconfig 没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31268343/

相关文章:

python - 阅读pdf文件的内容

c++ - 解密未找到函数重载错误消息

c++ - 尝试使用 dlopen 加载库时 undefined symbol

c - 在 osx (.so) 中构建共享库

c - 无限循环在 pthread 中终止

c++ - 有没有办法替换库中的函数?

c++ - 为什么当我重定向 stdout 时我的程序运行得更快?

c++ - 多个项目引用 MFC : "use mfc in a static library" vs "use mfc in a shared dll"?

c++ - 如何找到机器上为 C 或 CPP 安装/可用的库?

linux - gstreamer 插件开发问题,gst-inspect 说 : undefined symbol: gst_video_format_new_caps