二进制工具

工具集

开发工具 
   gcc
   make  make 使用名为 Makefile 的配置文件来控制程序的构建方式。
   编译器工具集	   
   binutils 是各种二进制工具的集合,如 GNU linker、GNU 汇编器 以及其他实用程序,允许您检查和操作对象文件和二进制文件
     binutils 中 的工具
     Name	描述
     addr2line	将地址转换为文件名和行号。
     ar		从存档创建、修改和提取文件。
     as		GNU 汇编器.
     c++filt	解码 mangled C++ 符号。
     dwp		将 DWARF 对象文件合并到一个 DWARF 软件包文件中。
     elfedit	检查和编辑 ELF 文件。
     gprof	显示性能分析信息。
     ld		GNU 链路器.
     ld.bfd	GNU 链路器的替代选择。
     ld.gold	GNU 链路器的另一个选择。
     nm		列出对象文件的符号。
     objcopy	复制和转换对象文件。
     objdump	显示对象文件的信息。
     ranlib	生成存档内容的索引,以便更快地访问此存档。
     readelf	显示有关 ELF 文件的信息。
     size	列出对象或存档文件的部分大小。
     strip 	忽略对象文件中的所有符号。	

   elfutils 是各种二进制工具的集合,如 eu-objdump、eu-readelf 以及其他可让您检查和操作 ELF 文件的工具。
   dwz 是一个命令行工具,它会尝试优化 ELF 共享库中包含的 DWARF 调试信息以及 ELF 可执行文件的大小
   anobin 插件扫描 GNU Compiler Collection(GCC)命令行、编译状态和编译过程,并生成 ELF 备注
   
调试工具 
    GDB  -- GNU Debugger 
    strace 是命令行的诊断和调试工具,可用于跟踪由正在运行的进程发出和接收的系统调用。它记录每个系统调用的名称、其参数及其返回值	
    ltrace 是命令行的诊断和调试工具,可用于显示对共享库进行的调用。它使用动态库 hooking 机制,可防止它跟踪调用静态链接的库
    memstomp 是一个命令行工具,可用于识别当各种标准不允许重叠时具有重叠内存区域的函数调用。

CMakelists.txt

  add_subdirectory   模块化构建:将项目拆分为多个子目录(如 src、tests、third_party),每个子目录包含独立的 CMakeLists.txt

参考

    https://github.com/felixguendling/cista
https://westfly.github.io/post/cpp/cista-reflection/		
posted @ 2025-08-27 20:59  辰令  阅读(10)  评论(0)    收藏  举报