音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

嵌入式C語(yǔ)言應(yīng)用程序開發(fā)工具-gcc使用指南

作者:mistyeyed 欄目:ARM技術(shù)
嵌入式C語(yǔ)言應(yīng)用程序開發(fā)工具-gcc使用指南
嵌入式開發(fā)工具通常包括文本編輯工具,gcc編譯器,MakeFile文件,gdb調(diào)式工具.

gcc是在Linux下運(yùn)行的自由軟件,本身是編譯器,也可以用作交叉編譯工具。所以說(shuō)gcc是完整的交叉C編譯器。
gcc的主要部件包括以下部件:

C交叉編譯器gcc
交叉匯編工具as
反匯編工具objdump
連接工具ld
調(diào)試工具GDB

gcc最基本的用法是∶gcc [options] [filenames]



程序編譯的四個(gè)過程:預(yù)處理、編譯、匯編、連接

基本參數(shù)說(shuō)明:
-E:只進(jìn)行預(yù)處理
-S:只進(jìn)行編譯;產(chǎn)生匯編代碼
-c:只編譯、匯編,不連接成為可執(zhí)行文件,編譯器只是由輸入的.c等源代碼文件生成.o為后綴的目標(biāo)文件,通常用于編譯不包含主程序的子程序文件
-o  output_filename:確定輸出文件的名稱為output_filename,同時(shí)這個(gè)名稱不能和源文件同名。如果不給出這個(gè)選項(xiàng),gcc就給出預(yù)設(shè)的可執(zhí)行文件a.out
-v:打印程序的編譯過程,以及編譯器的版本
-g:產(chǎn)生符號(hào)調(diào)試工具(GNU的gdb)所必要的符號(hào)資訊,要想對(duì)源代碼進(jìn)行調(diào)試,必須加入這個(gè)選項(xiàng)
-o:對(duì)程序進(jìn)行優(yōu)化編譯、連接
-o2:比-o更好的優(yōu)化
-Idirname:將dirname所指出的目錄加入到程序頭文件目錄列表中,是在預(yù)編譯過程中使用的參數(shù)。C程序中的頭文件包含兩種情況∶
A)#include <>
B)#include “myinc.h”
   其中,A類使用尖括號(hào)(< >),B類使用雙引號(hào)(“ ”)。對(duì)于A類,預(yù)處理程序cpp在系統(tǒng)預(yù)設(shè)包含文件目錄(如/usr/include)中搜尋相應(yīng)的文件,而對(duì)于B類,cpp在當(dāng)前目錄中搜尋頭文件,這個(gè)選項(xiàng)的作用是告訴cpp,如果在當(dāng)前目錄中沒有找到需要的文件,就到指定的dirname目錄中去尋找。在程序設(shè)計(jì)中,如果我們需要的這種包含文件分別分布在不同的目錄中,就需要逐個(gè)使用-I選項(xiàng)給出搜索路徑
-Ldir:將dir所指出的目錄加入到程序函數(shù)檔案庫(kù)文件的目錄列表中,是在連接過程中使用的參數(shù)。在預(yù)設(shè)狀態(tài)下,連接程序ld在系統(tǒng)的預(yù)設(shè)路徑中(如/usr/lib)尋找所需要的檔案庫(kù)文件,這個(gè)選項(xiàng)告訴連接程序,首先到-L指定的目錄中去尋找,然后到系統(tǒng)預(yù)設(shè)路徑中尋找,如果函數(shù)庫(kù)存放在多個(gè)目錄下,就需要依次使用這個(gè)選項(xiàng),給出相應(yīng)的存放目錄
-lname:在連接時(shí),裝載名字為“l(fā)ibname.a”的函數(shù)庫(kù),該函數(shù)庫(kù)位于系統(tǒng)預(yù)設(shè)的目錄或者由-L選項(xiàng)確定的目錄下。例如,-lm表示連接名為“l(fā)ibm.a”的數(shù)學(xué)函數(shù)庫(kù)
-nostdlib:不使用系統(tǒng)默認(rèn)的startup file和系統(tǒng)函數(shù)庫(kù),僅使用自己定義的庫(kù)進(jìn)行連結(jié),某些特定的平臺(tái)可能需要系統(tǒng)默認(rèn)的庫(kù)libgcc.a避免一些系統(tǒng)錯(cuò)誤;因此當(dāng)使用此命令是一般需要將libgcc.a庫(kù)另外指定進(jìn)行連接。
ld(LINK DESCRIPTION)文件:ld文件是指出連接時(shí)內(nèi)存映象格式的文件
大部分情況下各種參數(shù)混合使用時(shí)的順序不會(huì)有什么影響,但是當(dāng)同一個(gè)參數(shù)連續(xù)使用時(shí)將產(chǎn)生不同的效應(yīng),例如:-L命令,不同的順序則編譯起搜索的順序不同



2樓: >>參與討論
mistyeyed
要支持啊
大家要是覺得  有用就回帖支持一下

3樓: >>參與討論
seaseesky
頂一下
望再出好帖

4樓: >>參與討論
Eric_CAA
支持!
RT!

5樓: >>參與討論
mistyeyed
會(huì)努力的  大家關(guān)注
會(huì)努力的  大家關(guān)注



6樓: >>參與討論
mistyeyed
http://www.bluemcu.com/
http://www.bluemcu.com/
上面有的新文章  大家看看  
多提意見

7樓: >>參與討論
a_wwei
支持!
 
8樓: >>參與討論
fsslong
不錯(cuò)啊
 
9樓: >>參與討論
mistyeyed
http://www.bluemcu.com/
http://www.bluemcu.com/


10樓: >>參與討論
mistyeyed
自己頂
自己頂

11樓: >>參與討論
mistyeyed
ha
ha 

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)教:LPC2214的幾個(gè)問題
請(qǐng)推薦一款flash芯片,大于等于32m的
誰(shuí)能告訴我,是對(duì)還是錯(cuò)!
求uc/os-II的boot~~~
請(qǐng)問網(wǎng)絡(luò)接口芯片LXT971?
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)