美文网首页
Linux 常用命令三

Linux 常用命令三

作者: wayyyy | 来源:发表于2020-07-19 22:42 被阅读0次

gcc


ar

AR命令可以对一个或者多个目标文件.o进行归档, 形成一个静态库.a文件。

命令格式

ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive files

选项

{dmpqrtx}中的操作选项在命令中只能并且必须使用其中一个

  • d 从库中删除模块。按模块原来的文件名指定要删除的模块
  • q 快速追加,增加新模块到库的结尾处
  • r 在库中替换同名的模块
  • p 显示库中指定的成员到标准输出
  • t 显示库的模块表清单。一般只显示模块名
  • x 从库中提取一个成员。如果不指定要提取的模块,则提取库中所有的模块。

[abcfilNoPsSuvV] 可以结合使用

  • a
  • c
  • s

####### 示例

  • ar rcs [目标文件...]
    把目标文件转归档为静态库文件
  • ar -vt [静态库文件]
    查看静态库中有哪些文件
  • ar -x [静态库文件]
    将静态库中的目标文件解压出来,放在当前目录下。

ldd

打印动态库依赖


image.png

file

显示文件类型


size

列出 objfile 中各节的大小


image.png

nm

用来列出 objfile 中的符号。

  • nm 中各个常见符号分类意义

    • A
    • B/b The symbol is in the BSS data section
    • D/d The symbol is in the initialized data section
    • T/t The symbol is in the text (code) section
    • U The symbol is undefined.
  • 将文件中的符号属于各个文件打印出来

    nm -A [objfile]
    
  • 展示 objfile 中未被demangle的符号名称

    nm -C [objfile]
    
  • 将符号的行号输出来
    需要调试信息,编译时添加-g选项。

    nm -l [objfile]
    

readelf

-s


objdump

  • a 列举.a文件中的所有目标文件
  • C 对于C++ 符号名进行反修饰
  • d 对包含机器指令的段进行反汇编
  • h 显示段表
  • t 显示文件中的符号表,-T 显示动态链接符号表
  • r 显示重定位信息,-R 显示动态链接重定位信息

addr2line

addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。
一般适用于 debug 版本或带有 symbol 信息的库。


相关文章

网友评论

      本文标题:Linux 常用命令三

      本文链接:https://www.haomeiwen.com/subject/paorkktx.html