5_嵌入式C語言編譯器
阿新 • • 發佈:2019-01-31
關鍵詞:GCC與gcc有什麼不同、交叉編譯、 gcc關鍵編譯選項
1. GCC與gcc有什麼不同?
- GCC(GNU Compiler Collection):GNU編譯器集合,包含眾多語言的編譯器。如:C、C++、Java、D、Objective-C
- gcc:特指GCC中的C語言編譯器
2. GCC VS 嵌入式
- 多數嵌入式作業系統都是基於GCC進行原始碼編譯,如Linux,Android,等。
- 實際開發中的使用:
1)核心開發:gcc
2)應用開發:gcc/g++/gdc
3. 什麼是交叉編譯?
- 背景:嵌入式裝置往往資源受限,不可能在嵌入式上直接對處理器進行程式設計
- 解決方案:在開發主機上(PC)對原始碼進行編譯,最終生成目標主機(嵌入式裝置)的可執行程式
4. gcc是如何進行交叉編譯的?
- 配置目標主機的編譯工具鏈(如:arm-linux)
- 配置工具的具體版本
1)根據具體的目的碼選擇相應的工具鏈版本
2)正確使用關於硬體體系結構的特殊編譯選項
5. gcc關鍵編譯選項
- 預處理指令:前處理器文字替換
gcc -E file.c -o file.i
- 編譯指令:編譯器將c程式碼翻譯成彙編程式碼
gcc -S file.i -o file.s
- 彙編指令:彙編器將程式碼彙編成目標機器上的二進位制程式碼
gcc -c file.s -o file.o
- 生成對映檔案:
gcc -wl,-Map=test.map file.c
- 巨集定義:
gcc -D`TEST=”test” ’ file.c - 獲取系統標頭檔案路徑:
gcc -v file.c
- 生成依賴關係:
gcc -M file.c
gcc -MM file.c
- 指定檔案及庫檔案搜尋路徑
gcc test.c -L -lfunc
-L選項:指定庫檔案的搜尋路徑
-l選項:指定庫檔案
宣告:此文章為本人在學習狄泰軟體學院《十二月提升計劃》所做的筆記,參考書籍《專業嵌入式軟體開發》——李雲,文章中包含狄泰軟體資料內容和《專業嵌入式軟體開發》資料內容,一切版權歸狄泰軟體
和《專業嵌入式軟體開發》所有!