【c++】c++ 编译链接成的可执行程序 执行时却表示无法找到某个或几个库

简介: 问题描述:c++ 程序已经完成了编译链接,但是在执行时,提醒说某个 库 地址找不到,无法启动进程服务。使用 ldd 命令 查看执行程序 可以看到 存在 某个库 显示 not find

问题描述:

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]#


服务器高级架构体系:https://xxetb.xet.tech/s/4DEnTI

目录
相关文章
|
3月前
|
存储 算法 安全
c++模板进阶操作——非类型模板参数、模板的特化以及模板的分离编译
在 C++ 中,仿函数(Functor)是指重载了函数调用运算符()的对象。仿函数可以像普通函数一样被调用,但它们实际上是对象,可以携带状态并具有更多功能。与普通函数相比,仿函数具有更强的灵活性和可扩展性。仿函数通常通过定义一个包含operator()的类来实现。public:// 重载函数调用运算符Add add;// 创建 Add 类的对象// 使用仿函数return 0;
116 0
|
11月前
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
253 6
|
8月前
|
自然语言处理 编译器 C语言
为什么C/C++编译腰要先完成汇编
C/C++ 编译过程中先生成汇编语言是历史、技术和实践的共同选择。历史上,汇编语言作为成熟的中间表示方式,简化了工具链;技术上,分阶段编译更高效,汇编便于调试和移植;实践中,保留汇编阶段降低了复杂度,增强了可移植性和优化能力。即使在现代编译器中,汇编仍作为重要桥梁,帮助开发者更好地理解和优化代码。
120 25
为什么C/C++编译腰要先完成汇编
|
10月前
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。
739 56
|
8月前
|
XML 网络协议 API
超级好用的C++实用库之服务包装类
通过本文对Boost.Asio、gRPC和Poco三个超级好用的C++服务包装类库的详细介绍,开发者可以根据自己的需求选择合适的库来简化开发工作,提高代码的效率和可维护性。每个库都有其独特的优势和适用场景,合理使用这些库可以极大地提升C++开发的生产力。
180 11
|
10月前
|
自然语言处理 编译器 Linux
|
11月前
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
501 22
|
11月前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
150 5
|
11月前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
172 1
|
11月前
|
Linux 编译器 C语言
Linux c/c++之多文档编译
这篇文章介绍了在Linux操作系统下使用gcc编译器进行C/C++多文件编译的方法和步骤。
136 0
Linux c/c++之多文档编译