嵌入式實驗一(嵌入式 Linux 開發(fā)環(huán)境的搭建及 Makefile 應(yīng)用)_第1頁
嵌入式實驗一(嵌入式 Linux 開發(fā)環(huán)境的搭建及 Makefile 應(yīng)用)_第2頁
嵌入式實驗一(嵌入式 Linux 開發(fā)環(huán)境的搭建及 Makefile 應(yīng)用)_第3頁
嵌入式實驗一(嵌入式 Linux 開發(fā)環(huán)境的搭建及 Makefile 應(yīng)用)_第4頁
嵌入式實驗一(嵌入式 Linux 開發(fā)環(huán)境的搭建及 Makefile 應(yīng)用)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

一、實驗?zāi)康模?.熟悉嵌入式Linux開發(fā)基本過程及基本命令。2.了解嵌入式Linux開發(fā)中各種工具的基本用途。3.搭建好嵌入式Linux的開發(fā)環(huán)境。4.通過對包含多文件的Makefile的編寫,熟悉各種形式的義變量的理解。二、實驗內(nèi)容:1.安裝Vmware及;2.熟悉Linux下相關(guān)命令:屬性查詢、修改,路徑、目錄的查詢、修改、刪除,壓縮、解壓等;3.熟悉編輯工具;4.熟悉makefile文件的基本作用(編寫一個包含多文件的Makefile)。三、Make工程管理器:Makefile如今能得以廣泛應(yīng)用,這還得歸功于它被包含在Unix系統(tǒng)中。在make誕生之前,Unix系統(tǒng)的編譯系統(tǒng)主要由“make”、“installshell腳本程序和程序的源代碼組成。它可以把不同目標的命令組成一個文件,而且可以抽象化依賴關(guān)系的檢查和存檔。這是向現(xiàn)代編譯環(huán)境發(fā)展的重要一步。1977年,斯圖亞特·費爾德曼在1貝爾實驗室里制作了這個軟件。2003年,斯圖亞特·費爾德曼因發(fā)明了這樣一個重要的工具而接受了美國計算機協(xié)會()頒發(fā)的軟件系統(tǒng)獎。Makefile文件是可以實現(xiàn)自動化編譯,只需要一個“”命令,整個工程就能完全自動編譯,極大的提高了軟件開發(fā)的效率。目前雖有眾多依賴關(guān)系檢查工具,但是make是應(yīng)用最廣泛的一個。一個程序員會不會寫makefile,從一個側(cè)面說明了這個程序員是否具備完成大型工程的能力。1.Makefile基本規(guī)則一個簡單的Makefile語句由目標、依賴條件、指令組成。smdk6400_config:其中:smdk6400_config:目標;unconfig:先決條件;@mkdir-p$(obj)include$(obj)board/samsung/smdk6400:指令。這里特別注意,“@”前面是Tab鍵,并且必須是Tab鍵,而不能是空格。目標和先決條件是依賴關(guān)系,目標是依賴于先決條件生成的。2.Makefile的變量為了簡化編輯和維護Makefile,make允許在Makefile中創(chuàng)建和中的變量定義有兩種方式:遞歸展開方式和簡單方式。2Makefile中的變量分為用戶自定義變量、預(yù)定義變量、自動變量及環(huán)境變量。自定義變量的值由用戶自行設(shè)定,而預(yù)定義變量和自動變量為通常在Makefile都會出現(xiàn)的變量,其中部分有默認值,也就是常見的設(shè)定值,當然用戶可以對其進行修改。預(yù)定義變量包含了常見變壓器、匯編器的名稱及其編譯選項。表1.1列出了Makefile中常見預(yù)定義變量及其部分默認值。表庫文件維護程序的名稱,默認值為arCPPCXXARFLAGSASFLAGSCFLAGSCPPFLAGSCXXFLAGSFFLAGSC編譯器的選項,無默認值C預(yù)編譯器的選項,無默認值C++編譯器的選項,無默認值FORTRAN編譯器的選項,無默認值由于常見的gcc編譯語句中通常包含了目標文件和依賴文件,而這些文件在Makefile文件中目標體的一行已經(jīng)有所體現(xiàn),因此為進一步簡化Makefile的編寫,就引入了自動變量。自動變量通??梢源砭幾g語句中出現(xiàn)目標文件和依賴文件等,并且具有本地含義(即下一語句中出現(xiàn)的相同變量代表的是下一語句的目標文件和依賴文件)。表1.2列出了Makefile中常見的自動變量。表所有的依賴文件,以空格分開,并以出現(xiàn)的先后為序,可能包含重復(fù)的依賴文件$+3$%3.Makefile規(guī)則隱式規(guī)則和模式規(guī)則。四、實驗步驟及過程:1.安裝虛擬機軟件Vmware;2.安裝實驗平臺所用的Ubuntu虛擬機;3.編寫包含兩個簡單文件的Makefile并運行。1)用vim在同一目錄下編輯兩個簡單的Hello程序,如下所示:printf("Helloeveryone!\n");hello.h#include<stdio.h>2)仍在同一目錄下用vim編輯Makefile,不使用變量替換,用一個目標體實現(xiàn)(即直接將hello.c和hello.h編譯成hello目標體)。并用make驗證。4.嵌套Makefile實驗。創(chuàng)建如下的目錄結(jié)構(gòu):1)首先在用戶目錄下創(chuàng)建makefiletest文件夾:#mkdirmakefiltest#cdmakefiletest創(chuàng)建好需用到的其它文件夾#mkdirf1f2mainobjinclude2)用相關(guān)代碼如下:return;}{return;}5/makefiletest/main/main.cprint1();print2();return0;}#include<stdio.h>3)用obj6續(xù)上頁代碼@$(RM)$(OBJS_DIR)/*.o@rm-rf$(BIN_DIR)4)用../$(OBJS_DIR)/f1.o:f1.c$(CC)-c$^-o$@/makefiletest/f2/Makefile../$(OBJS_DIR)/f2.o:f2.c$(CC)-c$^-o$@/makefiletest/main/Makefile../$(OBJS_DIR)/main.o:main.c$(CC)-c$^-o$@/makefiletest/obj/Makefile../$(BIN_DIR)/$(BIN):$(OBJS)$(CC)-o$@$^四、實驗結(jié)果:首先在用戶目錄下創(chuàng)建makefiletest文件夾;創(chuàng)建好需用到的其它文件夾f1,f2,main,obj,include等5個文件夾。2.在f1文件夾下使用vim創(chuàng)建f1.c文件。3.在f2文件夾下使用vim創(chuàng)建f2.c文件。4.在main文件夾下使用vim創(chuàng)建main.c文件。在6.在f1文件夾下使用vim創(chuàng)建Makefile文件。7.在f2文件夾下創(chuàng)建Makefile文件。8.然后在makefiltest主文件夾下創(chuàng)建Makefile文件tree五、總結(jié)與體會:通過本次實驗意識到許多問題并得到完善:1.Ubuntu自帶的vi使用過于麻煩,解決方法:sudoapt-getinstallvim安裝vim2.由于基本功不扎實,:v

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論