娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

gcc常用選項

gcc 的使用方法: gcc [選項] 文件名

-v:查看gcc編譯器的版本,顯示gcc執行時的詳細過程

-o :指定輸出文件名為file,不用與編譯文件同名

-E: preprocess only; do not compile, assemble or link(只預處理,不會編譯、匯編、鏈接)

-S:Compile only; do not assemble or link(只編譯需要有已經預處理完成的輸出文件,不會匯編和鏈接)

-c:Compile and assemble, but do not link(預處理 編譯和匯編,不會鏈接)

gcc編譯文件

gcc hello.c :直接默認生成一個a.out文件

gcc -o hello hell.out: 指定生成hello

gcc -E -o hello.i hello.c: 預處理

gcc -S -o hell0.s hello.i:編譯

gcc -c -o hello.o hello.s:編譯匯編

gcc -o hello hello.o:鏈接

小結:

1)輸出文件的后綴名和選項共同決定gcc到底執行哪些操作

2)在編譯過程中除非使用了-E、-S、—c 選項,或者編譯出錯阻止了完整的編譯過程,否則最后的步驟都是鏈接


深入鏈接的過程

鏈接就是將匯編生成的OBJ文件、系統庫的OBJ文件、庫文件鏈接起來,最終生成可以在特定平臺運行的可執行程序

-lc:鏈接libc庫文件

-nostdlib選項常用于裸機、bootloaderlinux內核等程序,因為他們不需要啟動文件,也不需要標準庫文件,一般應用程序才需要系統標準啟動文件和庫文件。

動態鏈接使用動態鏈接庫進行鏈接,生成的程序在執行的時候需要加上動態庫才能運行。動態鏈接生成的程序體積較小,但是必須依賴所需要的動態庫,否則無法運行。

靜態鏈接使用靜態庫進行鏈接,生成的程序包含程序運行所需要的全部庫,可以直接運行,不過靜態鏈接生成的程序體積較大。


Makefile

makefile的引入

組織管理程序

在有多個原文件的情況下,首先要編譯會比較麻煩,再者,每次都會對所有的文件都會執行一次預處理、編譯、匯編、鏈接

如何判斷哪些文件被修改 – 比較時間


makefile規則

目標文件:依賴1 依賴2 …

(使用TAB鍵 )命令

當目標文件不存在或者某個依賴文件比目標文件新

則執行命令

簡單的makefile


假設有a.c和b.c兩個源文件,要生成text

makefile 如下


text:a.o b.o

     gcc -o -text a.o b.o

a.o:a.c

     gcc -c -o a.o a.c

b.o:b.c

     gcc -c -o b.o b.c         


分析:第一次執行,a.o b.o都不存在,執行gcc -c -o a.o a.c和gcc -c -o b.o b.c ,之后執行gcc -o -text a.o b.o來生成 a .o b.o;后面用a.o b.o 來執行gcc -o -text a.o b.o來生成text

加入更改了a.c ,則執行make時,因為依賴a.o 和 b.o,先查看a.o,a.o 依賴a.c 改變,執行gcc -c -o a.o a.c,b.o的依賴不變,而后執行gcc -o -text a.o b.o生成目標


makefile語法

使用makefile,用make命令,如果不跟目標,默認第一個目標,


%:通配符

@??:目標文件??@**:目標文件**@??:目標文件??<:第一個依賴

$^:表示所有的依賴


.PHONY:假象目標


clean:

rm *.o

如果同目錄下存在clean文件,則執行make clean后,命令并不會被執行,加上.PHONY: clean后,就可以執行了。


即時變量(簡單變量)、延時變量、export

變量的引用使用$(變量名)


A:=XXX #A的值即確定,在定義時就確定

B =XXX #B的值使用到時才確認

?= XXX #如果是第一次定義,才起效,如果前面已經定義,則不起效

+= XXX #附加,他是即時變量還是延時變量,取決于之前的定義


makefile函數

A = a b c

B = $(foreach f, &(A), &(f).o)


all:

echo B=$(B)


gcc -M c.c // 打印出依賴

gcc -M -MF c.d c.c //把依賴寫入文件c.d

gcc -c -o c.o c.c -MD -MF c.d //編譯c.o,把依賴寫入文件c.d

關鍵字:arm-linux-gcc  makefile 引用地址:arm-linux-gcc和簡單的makefile

上一篇:第七篇:gcc和arm-linux-gcc常用選項
下一篇:編譯通過的U-boot和使用的arm-linux-gcc編譯器

推薦閱讀

根據市場研究機構IHS Markit的數據,Nvidia于2017年首次憑借芯片銷售量躋身全球前十大半導體供貨商;而該前十大榜單上只有該公司與高通(Qualcomm)是嚴格意義上的無晶圓廠(fabless)芯片設計公司。IHS Markit指出,Nvidia的2017年銷售總額為85.7億美元,足以讓該公司排名全球第十大芯片供貨商;但IHS技術、媒體和電信部門總監兼首席分析師Len Jelinek表示...
4月13日消息 據ZDNet報道,安全研究人員發布了一份Internet Explorer(IE瀏覽器)零日漏洞的詳細信息和概念驗證代碼。通過這一漏洞,黑客可以竊取Windows系統中的文件。  這一漏洞可以在用戶打開.mht文件時發動攻擊。MHT即MHTML Web Archive,是IE瀏覽器默認使用的保存網頁的方式。  這一方式主要對和IE瀏覽器相關,因為較新型的瀏覽器已經不再以M...
今天,華為榮耀業務部總裁趙明在微博公布了榮耀30系列在同一個地點,從廣角模式開始,不斷放大的成像樣張。他表示,從第一張滑至最后一張,震撼;從最后一張滑至第一張,更加震撼。據悉,榮耀30系列有三款機型,分別是標準版、Pro版、Pro+版,和華為P40系列的命名方式相同,其中Pro+代表了該系列最高配置。榮耀30系列搭載40W超級快充,獲得萊茵安全快充認...
集微網消息 4月13日,長川科技發布公告稱,公司于今日收到公司股東國家集成電路產業投資基金股份有限公司(以下簡稱“大基金”)的《關于減持股份計劃的告知函》。大基金計劃自本公告披露之日起十五個交易日后6個月內通過集中競價的方式減持不超過6,275,810股公司股份(占公司總股本的2%)。截至本公告披露日,大基金持有長川科技股份30,960,411股,占公司...

史海拾趣

問答坊 | AI 解惑

點陣從左到右顯示上字程序怎樣設計,萬分感謝,…

查看全部問答∨

運放的一些資料

感覺挺好就上傳上來了…

查看全部問答∨

超級計算機09大會驚爆IBM技術新進展——人腦計算模式

據國外媒體報道,美國IBM在SC2009(超級計算機大會2009)大會中宣稱,他們已經在仿造人類大腦的計算模式上面取得了突破性的成果。   IBM公司此次所取得的關鍵進展主要包括兩大方面,第一就是實現了"大型腦皮層模擬器",第二就是設計了一種 ...…

查看全部問答∨

你希望在模擬電路部分學些什么?

歡迎大家討論,提出自己的看法。論壇會針對大家的意見做一些相關方面的資料和講解。…

查看全部問答∨

有人在6410上移植過ucos嗎?

使用stepstone,如何將booterload和ucos整合在一起。…

查看全部問答∨

2440 LCD問題

LCD型號為LTV250QV-F05,采用IO口模擬SPI總線,通過串口打印可以看到系統一定起來,但屏是白屏,硬件沒有問題,用原程序可以起來看到桌面,懷疑是SPI初始話代碼有錯,那位用過這款屏,給個SPI初始化的代碼…

查看全部問答∨

vc2005開發嵌入式SDI程序,CCommandBar類中的工具欄步支持彩色圖標 也不能全部顯示所有工具條按鈕(我的16個按鈕只顯示8個,其余的不能顯示)?

vc2005開發嵌入式SDI程序,CCommandBar類中的工具欄步支持彩色圖標 也不能全部顯示所有工具條按鈕(我的16個按鈕只顯示8個,其余的不能顯示)? 這個問題如何能解決…

查看全部問答∨

10進制轉16進制 出現奇怪的問題

unsigned char decTohex(unsigned char n, unsigned char turnto) {   int   a[20]={0x0};        int   i;           unsigned char temp;     ...…

查看全部問答∨

三菱F1-20MRPLC控制氣缸程序有錯嗎?

大家好我是一位PLC新手,現在開發一個用三菱F1-20MRPLC控制氣缸上下壓模的接線圖和程序.在IE輸入http://bbs.21ic.com/upfiles/img/20074/2007424104350740.jpg可以看到原理圖,程序在以下可以看見,想問大家2個問題 1.我的接線圖有錯嗎?應怎樣改正? ...…

查看全部問答∨

請問各位大俠,我需要一些用C實現的關于Wi-Fi數據傳輸的指導。請賜教。

我是新手 ,請大俠們賜教,使用Wi-Fi傳輸到底是個什么樣的過程,怎么用C實現啊?比如說,我現在電腦上有一些視頻文件,需要傳輸到另外一個電腦上,怎么用C實現?謝謝。…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 庄浪县| 湾仔区| 泰州市| 杭锦后旗| 麟游县| 聂拉木县| 漳州市| 凤山市| 方城县| 新干县| 格尔木市| 建湖县| 陆丰市| 洛川县| 张家口市| 永善县| 泊头市| 浙江省| 金乡县| 星子县| 灌阳县| 宁安市| 泸州市| 绥阳县| 铜川市| 府谷县| 青川县| 石河子市| 佛坪县| 图片| 华亭县| 上饶县| 安义县| 普定县| 禄丰县| 平舆县| 沁水县| 托克逊县| 图们市| 驻马店市| 中西区|