天天看點

GNU/GCC 基礎介紹

​天星​

讀完需要

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​

GNU/GCC 基礎介紹

​嵌入式(MIPS):mips-linux-gnu-。arm對應的是arm-linux-gnu,不同的平台取代不同。​

GNU/GCC 基礎介紹

​​注意:這裡嵌入式平台分為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​​​

​​總結​​

繼續閱讀