天星
讀完需要
2分鐘
速讀僅需1分鐘
1個
GNU / GCC簡介
1.1
GNU
GNU工具鍊(GNU Toolchain)是一組用于開發應用程式和作業系統的變成工具的集合,這些工具構成了一個完整的系統。
GNU工具鍊包括GCC,GNU Binutils,GNU m4,GNU make等部分。此處主要介紹GCC。
1.2
GCC
GCC原來代表“ GNU C Compiler”的意思。但是通過GCC的發展,現在不僅僅支援C語言,也支援C ++,Java,Objective-C等。
是以,GCC被重新定義為“ GNU編譯器集合”,即GNU編譯器套件。
2
什麼是GCC?(GNU Complier集合)
GCC(GNU Complier Collection)是一套完整的工具鍊。
包括gcc,g ++,ar,as,ld,objcopy,objdump等。不同的平台都有一套完整的工具。
2.1
工具鍊組成
pc端:x86_64-linux-gnu-。否則就是gcc

嵌入式(MIPS):mips-linux-gnu-。arm對應的是arm-linux-gnu,不同的平台取代不同。
注意:這裡嵌入式平台分為glibc 和 uclibc 之分。
2.2
主要工具介紹
名稱 | 說明 |
gcc | C 編譯器,事實上最終調的是cc1 和 彙編器和連結器。 |
g++ | C++ 編譯器,事實上最終調的是cc1plus 和彙編器和連結器。常用,事實上gcc 也可以編c++程式。 |
cpp | C和C++預處理器,同 gcc -E 選項 |
c++ | 用法同g++ |
addr2line | 是一個可以将指令的位址和可執行映像轉為檔案名、函數名和源代碼行數的工具。在程式崩潰時,可以快速定位代碼位置。調試 |
ar | 用于建立、修改和提取檔案檔案。檔案檔案經常被用作程式庫檔案 |
as | 彙編器 |
ld | 連結器 |
gdb | GNU 調試器 |
nm | 用于列出二進制檔案 (包括庫檔案和可執行檔案) 中的符号,這些符号可以是函數、全局變量、靜态變量等 |
objcopy | 将目标檔案從一種二進制格式複制和翻譯到另外一種二進制格式 |
objdump | 用于列出關于二進制檔案的各種資訊 |
readelf | 讀取ELF 格式的顯示資訊 |
strip | 用于移除目标檔案中的符号,以及其他調試所需要的資訊 |
size | 用于列出目标檔案或者檔案檔案各段的大小 |
3
總結