工具集
開發工具
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/