温馨提示×

centos怎么查c++依赖

小樊
44
2026-10-08 22:04:57
栏目: 编程语言

在 CentOS 上“查 C++ 依赖”通常分几种场景,下面按常见需求给你总结:


一、查可执行文件 / 动态库的 C++ 运行时依赖(最常用)

1️⃣ 查看动态库依赖

ldd your_program

示例:

ldd a.out

输出类似:

libstdc++.so.6 => /lib64/libstdc++.so.6
libgcc_s.so.1 => /lib64/libgcc_s.so.1
libc.so.6 => /lib64/libc.so.6

如果是 C++ 程序,重点看:

  • libstdc++.so.6
  • libgcc_s.so.1

2️⃣ 查看更详细的符号依赖

objdump -p your_program | grep NEEDED

或:

readelf -d your_program | grep NEEDED

二、查某个 .so 是谁提供的(找 RPM 包)

rpm -qf /lib64/libstdc++.so.6

示例:

libstdc++-4.8.5-44.el7.x86_64

三、查系统里有没有某个 C++ 运行库

rpm -qa | grep libstdc++

或:

yum list installed | grep libstdc++

四、查编译时依赖(头文件 / 库文件)

1️⃣ 查头文件

rpm -qf /usr/include/c++/4.8.5

2️⃣ 查开发包(如 gcc-c++)

rpm -qa | grep gcc

常见包:

  • gcc
  • gcc-c++
  • libstdc++-devel

安装:

yum install gcc-c++ libstdc++-devel

五、查程序缺哪个 C++ 符号(排错用)

nm -D your_program | grep symbol_name

或运行程序看报错:

undefined reference to `std::...'

六、静态链接 / 动态链接检查

file your_program

看是否:

  • dynamically linked
  • statically linked

七、常见 C++ 依赖问题速查

问题 原因
GLIBCXX_3.4.21 not found libstdc++ 版本太低
libstdc++.so.6: version 'CXXABI_1.3.9' not found gcc 版本太低
程序在本机编译,别人机器跑不了 缺 libstdc++

八、升级 C++ 运行库(如需要)

yum install centos-release-scl
yum install devtoolset-9
scl enable devtoolset-9 bash

如果你能说具体场景(比如:
✅ 查某个程序的依赖
✅ 查编译失败缺什么
✅ 查别人程序在你机器能不能跑)
我可以直接给你对应命令。

0 踩