什么是toolchain
為了生成可執行程序或者庫文件,需要編譯器鏈接器等開發工具,編譯器將源代碼編譯為目標文件,鏈接器將目標文件,庫文件鏈接成可執行文件。這些開發工具的集合稱之為toolchain,包括預處理器,編譯器,匯編器,鏈接器和調試器等。
GNU toolchain
用於開發GNU操作系統(Linux系統)上的可執行程序或庫文件的工具鏈
- ld - the GNU linker.
- as - the GNU assembler.
- gcc - the GNU compiler
- nm - Lists symbols from object files.
- readelf - Displays information from any ELF format object file.
- objdump - Displays information from object files.
Ubuntu16.04 toolchain
NDK toolchain
用於開發Android系統上的可執行程序或庫文件的工具鏈
- aarch64-linux-android-gcc
- aarch64-linux-android-g++
- aarch64-linux-android-ar 庫管理工具
- aarch64-linux-android-as 匯編器
- aarch64-linux-android-ld 鏈接器
toolchain命名
- x86_64-linux-gnu-gcc (x86_64架構-Linux內核-GNU操作系統-gcc)
- aarch64-linux-android-gcc (aarch64架構-Linux內核-Android操作系統-gcc)
Ubuntu等Linux發行版和Android操作系統都是Linux內核;
我們通常所說的Linux操作系統實際上只是內核是Linux內核,其他系統軟件都是GNU軟件,更確切的說應該是GNU操作系統或者GNU/Linux操作系統