Linux 如何显示C/C+中包含的头文件和src文件的名称+;共享库

Linux 如何显示C/C+中包含的头文件和src文件的名称+;共享库,linux,shared-libraries,Linux,Shared Libraries,对于C/C++共享库(.so文件),如何检查其中包含的所有头和源的名称 我尝试使用-g选项编译共享库,并使用readelf-Wl,但我只能得到如下结果: Elf文件类型为DYN(共享对象文件) 入口点0x560 共有7个程序头,从偏移量64开始 程序标题: 键入Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align 加载0x0000000x0000000000 0x0000000000 0x0000000000000000 0x000754 0x000

对于C/C++共享库(.so文件),如何检查其中包含的所有头和源的名称

我尝试使用-g选项编译共享库,并使用
readelf-Wl
,但我只能得到如下结果:

Elf文件类型为DYN(共享对象文件)

入口点0x560

共有7个程序头,从偏移量64开始

程序标题: 键入Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align

加载0x0000000x0000000000 0x0000000000 0x0000000000000000 0x000754 0x000754 R E 0x200000

加载0x000e70 0x00000000000200E70 0x00000000000200E70 0x0001b0 0x0001b8 RW 0x200000

动态0x000e88 0x00000000000200E88 0x00000000000200E88 0x000150 0x000150 RW 0x8

注释0x0001c8 0x00000000000001c8 0x00000000000001c8 0x000024 0x000024 R 0x4

GNU_EH_帧0x0006a8 0x00000000000006a8 0x00000000000006a8 0x000024 0x000024 R 0x4

GNU_堆栈0x0000000x0000000000000000 0x0000000000 0x0000000000 0x000000 0x000000 0x000000 RW 0x10

GNU_RELRO 0x000e70 0x000000000200E70 0x000000000200E70 0x000190 0x000190 R 0x1

节到段映射:

分段段。。。 00.note.gnu.build-id.gnu.hash.dynsym.dynstr.rela.dyn.init.plt.plt.got.text.fini.eh_frame\u hdr.eh_frame

01.init_array.fini_array.jcr.dynamic.get.get.plt.data.bss

02.动态

03.note.gnu.build-id

04.eh_帧_hdr

05

06.init_数组.fini_数组.jcr.dynamic.got


您的.so甚至不一定包含这些信息,除非它是用“-G”显式编译的

建议:

  • objdump-g

    objdump-W file.elf

  • readelf-WS./a.out | egrep'\(stab | debug)


readelf中的try-s选项,这会让您了解可以包含哪些文件。没有C/C++语言。库是二进制文件,它们既不是C也不是C++。它们既不包括头文件(也包括源代码文件)也不包括其他源文件。你想完成什么还不清楚。