linux - 如何列出c/c++静态库的依赖?

标签 linux shared-libraries static-libraries

对于一个静态库(.a文件),如何列出它的模块级依赖?

我知道对于共享库 (.so),我们可以使用 objdumpreadelf 来执行此操作:

objdump -p test.so

readelf -d test.so

我可以得到类似的东西

NEEDED libOne.so

NEEDED libc.so.6

但是对于静态库,我只能获取符号级别的依赖,例如,通过运行

objdump -T test.a

我会得到这样的东西:

00000000 DF UND 00000000 QByteArray::mid(int, int) const

00000000 DF UND 00000000 QUrl::fromEncoded(QByteArray const&)

00000000 DF UND 00000000 QFileInfo::fileName() const

但是我需要模块级别的信息,有人知道如何获取该信息吗?

最佳答案

静态库没有这样的依赖列表。

静态库只不过是目标文件的存档。由于目标文件不知道它们依赖于哪些库,因此静态库也不知道。

关于linux - 如何列出c/c++静态库的依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789518/

相关文章:

linux - Nginx重写规则动态子文件夹和路径

c++ - 来自垂死的多线程进程的核心转储

c++ - 库可以替换 C/C++ 中的本地套接字吗?

c - 为什么 C 程序使用 libmath 的 .so 比使用 libmath 的 .a 显示更多的内存?

ios - 在 Xcode 4.3 上为模拟器构建 OpenSSL 失败

python - 检查我的脚本是否启动且未卡住的可靠方法是什么?

python - 使用 python 编写守护进程而不是 C++

c++ - 自建llvm opt的 undefined symbol ?

gcc - 如何将D-Bus交叉编译到ARM?

linux - 如何编写一个 bash 脚本来给另一个程序响应