问题描述:c++ 程序已经完成了编译链接,但是在执行时,提醒说某个 库 地址找不到,无法启动进程服务。
使用 ldd
命令 查看执行程序 可以看到 存在 某个库 显示 not find
解决方式:
告诉 操作系统 在哪里加载对应的库,
在 /etc/ld.so.conf 中 写明 需要操作系统加载的库文件所在的文件夹的路径
使用 ldconfig 重新加载 库链接 地址到 /usr/lib 中。
之后再次 使用 ldd 查看 ,已经找到了全部库连接地址了
[root@localhost SPxBitmap]# ldd spxbitmap
linux-vdso.so.1 => (0x00007ffd51b60000)
libc.so.6 => /lib64/libc.so.6 (0x00007fef246eb000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fef24b45000)
librt.so.1 => /lib64/librt.so.1 (0x00007fef244e3000)
libz.so.1 => /lib64/libz.so.1 (0x00007fef242cd000)
libm.so.6 => /lib64/libm.so.6 (0x00007fef23fcb000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fef23daf000)
libirc.so => /lib/libirc.so (0x00007fef23b37000)
# 上面的动态库是此前显示 not find 的。
# 并且,这个库存在的地方并不是这个地方。查看后,明确这里使用的是软链接。
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fef23921000)
/lib64/ld-linux-x86-64.so.2 (0x00007fef24ab9000)
[root@localhost SPxBitmap]#
[root@localhost SPxBitmap]# ll /lib/libirc.so
lrwxrwxrwx. 1 root root 49 9月 1 19:01 /lib/libirc.so -> /usr/local/MATLAB/R2022a/sys/os/glnxa64/libirc.so
[root@localhost SPxBitmap]#