从 .so/.o 文件中获取 C/cpp 中的静态库列表
get list of static libraries in c/cpp from .so/.o files
我一直在尝试从文件中获取静态和动态依赖项。我有源代码和未绑定的 bin 文件, 为了获得所有动态依赖项,我使用了这一行及其工作
readelf -d $1 | grep "NEEDED|RPATH" | perl -pe 's/.*[(.*)]/$1/
当我使用以下命令时,我的问题出在静态库上:
nm path/to/so
我正在获取函数的名称而不是文件。 有没有办法查看每个二进制文件的静态依赖项?
动态库 (.so( 不能具有"静态依赖项",因为它们已经链接。
对象文件 (.o( 和静态库 (.a( 定义它们导出的符号(供其他人使用(和它们自己使用的符号。
您可以使用nm
命令列出对象文件的符号。例如:
$ nm lukas.o
U __cxa_atexit
U __dso_handle
0000000000000000 V DW.ref.__gxx_personality_v0
U _GLOBAL_OFFSET_TABLE_
00000000000003a8 t _GLOBAL__sub_I__Z15double_from_strRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
U __gxx_personality_v0
00000000000001d5 T main
U __stack_chk_fail
U _Unwind_Resume
U
关键字标记未定义的符号,即对象文件的静态依赖项。
相关文章:
- 初始值设定项列表构造和静态断言
- 初始值设定项列表是否足够静态以允许实例化模板?
- 具有不同参数列表的模板对象的模板静态映射
- 从 .so/.o 文件中获取 C/cpp 中的静态库列表
- 创建类型列表并访问每种类型的静态成员?
- C++将静态多态类自添加到子类的 constexpr 列表中
- 生成模板实例列表并对其调用静态函数
- 如何在构造函数的静态列表中添加对象
- 为多个类实例维护共享_ptr的静态列表
- 将整数值分配为variadic模板列表到静态const std ::数组成员
- 在声明节点创建链接列表时,为什么静态内存分配不起作用
- std::初始值设定项列表全局/静态对象的生存期
- 声明并使用静态列表来打印对象(在c++中)
- 可以通过成员初始化列表初始化静态成员变量
- 如何从静态列表构建Boost bimap
- C++-静态列表,当节点满时从头部弹出
- 如何比较两个充满类的静态列表
- 对象指针的C++静态列表,以及内存泄漏
- 静态列表中的变量生存期
- Qt c++:字体族的静态列表