分享

linux gcc编译常用命令之gun工具链的使用

 点点阅 2018-04-27
  1. http://edu.51cto.com/lesson/id-20331.html  
  2. linux  gcc编译常用命令之gun工具链的使用  
  3.   
  4. Binutils源码工具包中的常用命令:  
  5. gcc g++ ld ldd  nm strings   readelf addr2line strip   
  6. objcopy as ar gdb  
  7.   
  8. 1、gcc/g++编译器  
  9. 示例:  
  10. gcc -c test.c  
  11. gcc -o test test.c  
  12. gcc -E -o test.i test.c  
  13. gcc -g -o test test.c  
  14.   
  15. 2、addr2line  把程序地址转换为文件名和行号,需要编译时加-g  
  16. 示例:  
  17. addr2line a.out -a 804854c  
  18.   
  19. 3、ar 打包提取归档文件  
  20. ar rv libtest.a test.o  
  21.   
  22. 4、as gcc用来输出汇编文件,产生目标文件由连接器ld链接  
  23. 示例:  
  24. gcc -S tty.c -o tty.s  
  25. as -o tty.o tty.s  
  26.   
  27. 5、nm 查看导出符号,列出目标文件的符号  
  28. 示例:  
  29. nm -o libtest.so  
  30.   
  31. 6、objcopy 文件格式转换  
  32.   
  33. 7、objdump 反编译  
  34. 示例:  
  35. objdump -T libtest.so  
  36. objdump -d a.out  
  37.   
  38. 7、ranlib产生归档文件索引,并将其保存到这个归档文件  
  39.   
  40. 8、readelf 显示elf格式可执行文件信息  
  41. 示例:  
  42. readelf -h a.out   
  43.   
  44. 9、size 列出目标文件每一段的大小以及总体大小  
  45. 示例:  
  46. size a.out   
  47.   
  48.   
  49. 10、strings 打印目标文件中的可打印字符  
  50. 示例:  
  51. strings /lib64/libc.so.6 | grep GLIBC_  
  52.   
  53. 11、strip 丢弃目标文件中的全部或特定符号,减少体积  
  54. 示例:  
  55. strip a.out  
  56.   
  57. 12、ldd  用于判断某个可执行的elf档案引用什么动态库  
  58. 示例:  
  59. ldd -v libtest.so  
  60.   
  61. 13、查看so导出函数  
  62. nm -D 7z.so  
  63. objdump -tT 7z.so  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多