關(guān)鍵詞:GCC與gcc有什么不同齐遵、交叉編譯、 gcc關(guān)鍵編譯選項(xiàng)
1. GCC與gcc有什么不同塔插?
- GCC(GNU Compiler Collection):GNU編譯器集合梗摇,包含眾多語言的編譯器。如:C想许、C++伶授、Java、D流纹、Objective-C
- gcc:特指GCC中的C語言編譯器
2. GCC VS 嵌入式
- 多數(shù)嵌入式操作系統(tǒng)都是基于GCC進(jìn)行源碼編譯糜烹,如Linux,Android捧颅,等景图。
- 實(shí)際開發(fā)中的使用:
1)內(nèi)核開發(fā):gcc
2)應(yīng)用開發(fā):gcc/g++/gdc
3. 什么是交叉編譯?
- 背景:嵌入式設(shè)備往往資源受限碉哑,不可能在嵌入式上直接對(duì)處理器進(jìn)行編程
- 解決方案:在開發(fā)主機(jī)上(PC)對(duì)源碼進(jìn)行編譯挚币,最終生成目標(biāo)主機(jī)(嵌入式設(shè)備)的可執(zhí)行程序
4. gcc是如何進(jìn)行交叉編譯的?
- 配置目標(biāo)主機(jī)的編譯工具鏈(如:arm-linux)
- 配置工具的具體版本
1)根據(jù)具體的目標(biāo)代碼選擇相應(yīng)的工具鏈版本
2)正確使用關(guān)于硬件體系結(jié)構(gòu)的特殊編譯選項(xiàng)
5. gcc關(guān)鍵編譯選項(xiàng)
- 預(yù)處理指令:預(yù)處理器文本替換
gcc -E file.c -o file.i
- 編譯指令:編譯器將c代碼翻譯成匯編代碼
gcc -S file.i -o file.s
- 匯編指令:匯編器將代碼匯編成目標(biāo)機(jī)器上的二進(jìn)制代碼
gcc -c file.s -o file.o
- 生成映射文件:
gcc -wl,-Map=test.map file.c
- 宏定義:
gcc -D`TEST="test'' ' file.c - 獲取系統(tǒng)頭文件路徑:
gcc -v file.c
- 生成依賴關(guān)系:
gcc -M file.c
gcc -MM file.c
- 指定文件及庫文件搜索路徑
gcc test.c -L -lfunc
-L選項(xiàng):指定庫文件的搜索路徑
-l選項(xiàng):指定庫文件
聲明:此文章為本人在學(xué)習(xí)狄泰軟件學(xué)院《十二月提升計(jì)劃》所做的筆記扣典,參考書籍《專業(yè)嵌入式軟件開發(fā)》——李云妆毕,文章中包含狄泰軟件資料內(nèi)容和《專業(yè)嵌入式軟件開發(fā)》資料內(nèi)容,一切版權(quán)歸狄泰軟件和《專業(yè)嵌入式軟件開發(fā)》所有贮尖!