女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀] 先來簡單談?wù)勆梢粋€可執(zhí)行文件所需要的過程 預(yù)處理(preprocessing)->編譯(compilation)->匯編(assembly)->連接(linking) 編譯:.c-

先來簡單談?wù)勆梢粋€可執(zhí)行文件所需要的過程

預(yù)處理(preprocessing)->編譯(compilation)->匯編(assembly)->連接(linking)

編譯:.c->.s 匯編:.s->.o 連接:多個.o合并成一個可執(zhí)行文件。
在平常通過將上述四步統(tǒng)稱為“編譯”

接下來通過兩個簡單的例子來簡單分析Makefile

Makefile三大組成:目標(biāo)、依賴、命令

Makefile命令能被執(zhí)行條件。


目標(biāo)不存在 (對應(yīng)下面沒有hello這個文件) 依賴已更新 (對應(yīng)下面hello.c或a.c修改了)

如linux內(nèi)核中那么多文件,修改某個重新編譯某個,重新連接所有!

hello:hello.c a.c
    gcc -o hello.c a.c

實際在裸機開發(fā)的運用

led_on.bin : led_on.S
    arm-linux-gcc -g -c -o led_on.o led_on.S        #-g:加入調(diào)試信息 -c只編譯不連接
    arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf  #-Ttext 0x0000000:指定代碼段地址0.
    arm-linux-objcopy -O binary -S led_on_elf led_on.bin  #-O:使用指定格式來輸出文件
    # binary:二進制的 -S:不從源文件復(fù)制重定位信息和符號信息到目標(biāo)文件中去
clean:
    rm -f   led_on.bin led_on_elf *.o

arm-linux-gcc -g -c -o led_on.o led_on.S 因為加了-c選項,做了前三個步驟,預(yù)處理、編譯、匯編源文件,但是不作連接。
arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf 將前三個步驟生成的.o文件連接成ELF可執(zhí)行文件
arm-linux-objcopy -O binary -S led_on_elf led_on.bin 將可在linux執(zhí)行的ELF文件復(fù)制成能在開發(fā)板執(zhí)行的文件

補充常用的概念

$^–所有的依賴文件。$@–目標(biāo)文件。$<–第一個依賴文件。

hello:hello.o a.o
    gcc -o hello hello.o a.o
hello.o:hello.c
    gcc -o hello.o -c hello.c
a.o:a.c
    gcc -o a.o -c a.c

上面經(jīng)過簡寫如下:

hello:hello.o a.o
    gcc -o $@ $^
%.o:%.c
    gcc -o $@ -c $^
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

一初識Makefilemake是一種用于項目編譯的應(yīng)用程序,本質(zhì)是一種腳本。而Makefile則是對make腳本的規(guī)則描述。僅僅是寫腳本編譯項目的話shell腳本也是可以做的,用make的原因在于,make可以解析源文件...

關(guān)鍵字: makefile

使用環(huán)境Ubuntu 12.042,VMware Workstation3,微集成7英寸4418 Linux平板電腦安裝用于gcc-linaro-arm的交叉工具包。該程序包位于虛擬機的適當(dāng)目錄中,該目錄在以下目錄中進行...

關(guān)鍵字: Linux 交叉編譯 工業(yè)平板

Makefile格式分析如下: Makefile三大組成:目標(biāo)、依賴、命令 一、 led.bin: led.o #(目標(biāo)文件的生成依賴于命令行對依賴文件的處理。要將所有

關(guān)鍵字: makefile 常用makefile

源碼下載官網(wǎng): https://w1.fi/releases/ libnl-1.1.4交叉編譯: ./configure CC=xx-gcc \ --prefix=/home/xx/openspur

關(guān)鍵字: 交叉編譯 源碼

Linux-2.6.38.8 移植參考 ? 最近學(xué)習(xí)Linux有點迷茫,剛學(xué)會了字符驅(qū)動的編寫但是卻不知道下一步該干些什么,想學(xué)習(xí)Linux內(nèi)核裁剪,但是苦于找不到資料,開發(fā)板自帶的是Linux3.0

關(guān)鍵字: Linux makefile

一、什么是交叉編譯? ? ? ?在一種計算機環(huán)境中運行的編譯程序,能編譯出在另外一種環(huán)境下運行的代碼,我們就稱這種編譯器支持交叉編譯。這個編譯過程就叫交叉編譯。簡單地說,就是在一個平臺上生成另一個平臺

關(guān)鍵字: 交叉編譯

Makefile的編寫指導(dǎo)概述什么是makefile?或許很多Windows的程序員都不知道這個東西,因為那些Windows的IDE都為你做了這個工作,但我覺得要作一個好的和professional的

關(guān)鍵字: html makefile Windows

本文是對《深度探索linux操作系統(tǒng)系統(tǒng)構(gòu)建和原理解析》的筆記,目的是為了理解操作系統(tǒng),重點放在了各種依賴關(guān)系上,沒有刻意去記錄細(xì)節(jié)。1.疑惑構(gòu)建目標(biāo)系統(tǒng)的時候,即使目標(biāo)系統(tǒng)和宿主系統(tǒng)運行在同一個體系

關(guān)鍵字: 交叉編譯 構(gòu)建linux

最近在學(xué)習(xí)Linux下的C編程,買了一本叫《Linux環(huán)境下的C編程指南》讀到makefile就越看越迷糊,可能是我的理解能不行。于是google到了以下這篇文章。通俗易懂。然后把它貼出來,方便學(xué)習(xí)。

關(guān)鍵字: C語言 Linux makefile

具體內(nèi)容: ?首先需要安裝macports安裝完成后我們使用命令:callondeMacBook-Pro:~?callon$?sudo?port?install?libelf Password: Er

關(guān)鍵字: macbook 交叉編譯
關(guān)閉