freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

創(chuàng)建嵌入式系統(tǒng)開發(fā)環(huán)境-資料下載頁

2024-11-18 22:07本頁面
  

【正文】 n O是編譯器對程序提供的編譯優(yōu)化選項,可以是編譯器對程序提供的編譯優(yōu)化選項,可以提高執(zhí)行文件的運行效率;提高執(zhí)行文件的運行效率;例如例如 :gcc–O優(yōu)化編譯,并且產生了可執(zhí)行文件優(yōu)化編譯,并且產生了可執(zhí)行文件 。不需。不需要輸入目標文件名。要輸入目標文件名。n Wall 指定產生全部的指定產生全部的 警告警告 信息。信息。 例如例如 :gcc–Wall 產生全部警告信息,同時產生了可執(zhí)行文件產生全部警告信息,同時產生了可執(zhí)行文件。不需要輸入目標文件名。不需要輸入目標文件名。輸入文件的類型輸入文件的類型n gcc是通過后綴名來區(qū)別輸入文件的類型,下面是是通過后綴名來區(qū)別輸入文件的類型,下面是 gcc所遵所遵循的部分約定規(guī)則。循的部分約定規(guī)則。n c為后綴的文件,為后綴的文件, C語言源代碼文件;語言源代碼文件; .a為后綴的文件,是由目標文件構成的檔案庫文件;為后綴的文件,是由目標文件構成的檔案庫文件;.C, .cc或或 .cxx為后綴的文件,是為后綴的文件,是 C++源代碼文件;源代碼文件;.h為后綴的文件,是程序所包含的頭文件;為后綴的文件,是程序所包含的頭文件; .i為后綴的文件,是已經預處理過的為后綴的文件,是已經預處理過的 C源代碼文件;源代碼文件;.ii為后綴的文件,是已經預處理過的為后綴的文件,是已經預處理過的 C++源代碼文件;源代碼文件;.m為后綴的文件,是為后綴的文件,是 ObjectiveC源代碼文件;源代碼文件; .o為后綴的文件,是編譯后的為后綴的文件,是編譯后的 目標文件目標文件 ;;.s為后綴的文件,是匯編語言源代碼文件;為后綴的文件,是匯編語言源代碼文件;.S為后綴的文件,是經過預編譯的匯編語言源代碼文件為后綴的文件,是經過預編譯的匯編語言源代碼文件 。 gcc所生成的目標文件格式所生成的為可執(zhí)行文件,所生成的為可執(zhí)行文件, Linux有兩種可執(zhí)行有兩種可執(zhí)行文件:文件: ELF(( )和)和 。ELF(( Executivelinkedfile)為可執(zhí)行鏈接文)為可執(zhí)行鏈接文件,是一種新標準,功能更強大。文件的擴展名為件,是一種新標準,功能更強大。文件的擴展名為 .exe。ELF為為 Linux的默認格式的默認格式交叉編譯命令交叉編譯命令n gcc基于命令行的?;诿钚械?。n 當作為交叉編譯工具使用時,當作為交叉編譯工具使用時, gcc支持很多種的平臺和支持很多種的平臺和 “宿主機-目標機宿主機-目標機 ”的組合。的組合。n 對應交叉編譯,常用的命令就是對應交叉編譯,常用的命令就是 armlinuxgcc這樣。這樣,當用,當用 C語言寫好一個應用程序時,使用此命令就是以語言寫好一個應用程序時,使用此命令就是以生成可以在目標平臺上執(zhí)行的可執(zhí)行文件,通過超級終生成可以在目標平臺上執(zhí)行的可執(zhí)行文件,通過超級終端執(zhí)行后,就可以在目標板上看到程序的結果。端執(zhí)行后,就可以在目標板上看到程序的結果。 GNU make工具 GNU make工具n 什么是什么是 Makefile文件文件 ?n 在大型的開發(fā)項目中,通常有幾十個到上百個的源文件在大型的開發(fā)項目中,通常有幾十個到上百個的源文件,如果每次均手工鍵入,如果每次均手工鍵入 gcc命令進行編譯,會非常不方命令進行編譯,會非常不方便。便。n Linux專門為軟件開發(fā)提供了一個自動化的管理工具專門為軟件開發(fā)提供了一個自動化的管理工具 GNUMake。n Make的主要工作是讀取的主要工作是讀取 Makefile文件的內容。該文件描文件的內容。該文件描述了目標文件之間的依賴關系,以及制定編譯過程中使述了目標文件之間的依賴關系,以及制定編譯過程中使用的工具。用的工具。n 同時,同時, Make檢查目的文件的時間戳,如果目的文件的時檢查目的文件的時間戳,如果目的文件的時間戳至少比他的一個依靠文件舊,間戳至少比他的一個依靠文件舊, Make可以自動地更新可以自動地更新和編譯程序。和編譯程序。n 我們先舉一個實例來認識我們先舉一個實例來認識 Make和和 Makefile文件的用法文件的用法make概述n make依靠依靠 Makefile文件完成。文件完成。n 默認情況下,默認情況下, GNUmake工具在當前工作目錄中工具在當前工作目錄中 按如下順序按如下順序搜索搜索 makefile:: ”GNUmakefile”→” makefile”→” Makefile”。n 在在 Linux系統(tǒng)中,習慣使用系統(tǒng)中,習慣使用 Makefile作為作為 makefile文件。如果文件。如果要使用要使用 其他文件其他文件 作為作為 makefile,則可利用下面,則可利用下面 make命令指明命令指明makefile文件:文件: ”make–f”。n 比如:比如: “”, “”, “”等,等,如果要指定特定的如果要指定特定的 Makefile,你可以使用,你可以使用 make的的 “f”和和 “file”參數(shù),如:參數(shù),如: makef makefile n Makefile是一個文本格式的數(shù)據(jù)庫文件,包含一些規(guī)則,告是一個文本格式的數(shù)據(jù)庫文件,包含一些規(guī)則,告訴訴 make編譯哪些文件,在什么條件下編譯。編譯哪些文件,在什么條件下編譯。make規(guī)則規(guī)則n Makefile中的每條規(guī)則包括下面內容:中的每條規(guī)則包括下面內容:一個一個 目標體(目標體( target)) :: make最終需創(chuàng)建的對象。最終需創(chuàng)建的對象。包含一個或多個包含一個或多個 依賴體(依賴體( Dependency)) 的列表,依的列表,依賴體指明編譯目標時需要用到的其它文件。賴體指明編譯目標時需要用到的其它文件。命令(命令( Command)) 列表,指明從依賴體文件創(chuàng)建出列表,指明從依賴體文件創(chuàng)建出目標對象所需要執(zhí)行的命令。目標對象所需要執(zhí)行的命令。n 樣式樣式 :(注:每個命令行前必須是一個注:每個命令行前必須是一個 Tab字符字符 )target:dependency[dependency[…]] mand mand[…]n 如果一個工程有如果一個工程有 3個頭文件,和個頭文件,和 8個個 C文件文件 ,我們?yōu)榱送瓿?,我們?yōu)榱送瓿汕懊嫠龅哪侨齻€規(guī)則,我們的前面所述的那三個規(guī)則,我們的 Makefile應該是下面的這應該是下面的這個樣子的。個樣子的。 n edit:\n 168。 gccoedit\168。 n :168。 gcccn :168。 gcccn :168。 gcccn :168。 gccc反斜杠(反斜杠( \)是)是換行符的意思換行符的意思以以 TAB鍵開頭鍵開頭n :168。gcccn :168。gcccn :168。gcccn :168。gcccn clean:168。rmedit\168。makefile中使用變量 n 在上面的例子中,先讓我們看看在上面的例子中,先讓我們看看 edit的規(guī)則:的規(guī)則: n edit:\n 168。gccoedit\168。n 我們可以看到我們可以看到 [.o]文件的字符串被重復了兩次,如果我們文件的字符串被重復了兩次,如果我們的工程需要加入一個新的的工程需要加入一個新的 [.o]文件,那么我們需要在兩個文件,那么我們需要在兩個地方加。地方加。n 當然,我們的當然,我們的 makefile并不復雜,所以在兩個地方加也不并不復雜,所以在兩個地方加也不累,但如果累,但如果 makefile變得復雜,那么我們就有可能會忘掉變得復雜,那么我們就有可能會忘掉一個需要加入的地方,而導致編譯失敗。所以,為了一個需要加入的地方,而導致編譯失敗。所以,為了makefile的易維護,的易維護, 在在 makefile中我們可以使用變量中我們可以使用變量 。makefile的變量也就是一個字符串的變量也就是一個字符串 ,理解成,理解成 C語言中的語言中的 宏宏可能會更好??赡軙谩?n 比如,我們聲明一個變量,叫比如,我們聲明一個變量,叫 makefile一開始一開始就這樣定義:就這樣定義: n objects=\n n 很方便地在我們的很方便地在我們的 makefile中以中以 “$(objects)”的方式來使用這的方式來使用這個變量了個變量了n 程序如下程序如下 :n objects=\n n edit:$(objects)n gccoedit$(objects)n …………n clean:n rmedit$(objects)make的 “隱晦規(guī)則n GNU的的 make很強大,它可以很強大,它可以 自動推導文件以及文件依賴自動推導文件以及文件依賴關系后面的命令關系后面的命令 ,于是我們就沒必要去在每一個,于是我們就沒必要去在每一個 [.o]文件文件后都寫上類似的命令,因為,我們的后都寫上類似的命令,因為,我們的 make會自動識別,會自動識別,并自己推導命令。并自己推導命令。 n 只要只要 make看到一看到一 個個 [.o]文件文件 ,它就會自動的把,它就會自動的把 [.c]文件加在文件加在依賴關系中依賴關系中 ,如果,如果 make找到一個找到一個 ,那么,那么,就會是,就會是 。的依賴文件。n 并且并且 gccc也會被推導出來也會被推導出來 ,于是,我們的,于是,我們的makefile再也不用寫得這么復雜。新的再也不用寫得這么復雜。新的 makefile又出爐又出爐了。了。 n objects=\n n edit:$(objects)168。gccoedit$(objects)n :n :n :n :n :n :n :n :n .PHONY:cleann clean:168。rmedit$(objects)自動推導文件以自動推導文件以及文件依賴關系及文件依賴關系后面的命令后面的命令PHONY意思表示意思表示clean是一個是一個 “偽目偽目標標 ”注釋n Makefile中只有中只有 行注釋行注釋 ,和,和 UNIX的的 Shell腳本一樣,其注腳本一樣,其注釋是用釋是用 “”字符,這個就像字符,這個就像 C/C++中的中的 “//”一樣。如果你要一樣。如果你要在你的在你的 Makefile中使用中使用 “”字符,可以用反斜框進行轉義,字符,可以用反斜框進行轉義,如:如: “\”。n 例如例如 :n thatisamakefilen Hello:n ……..n (( 1)每個子目錄都有自己的)每個子目錄都有自己的 Makefile,負責本子目錄文件,負責本子目錄文件的編譯和控制下級目錄的編譯。的編譯和控制下級目錄的編譯。n (( 2)系統(tǒng)有一規(guī)則文件)系統(tǒng)有一規(guī)則文件 ,為整個系統(tǒng)所有的,為整個系統(tǒng)所有的Makefile所用所用 ,放在頂層放在頂層 .n (( 3)上級)上級 Makefile文件對下級文件對下級 Makefile文件進行控制,逐文件進行控制,逐級遞歸到最低層的級遞歸到最低層的 Makefile文件。最頂層的文件。最頂層的 Makefile文件給文件給出創(chuàng)建的目標文件。出創(chuàng)建的目標文件。完成大工程系統(tǒng)編譯的方法完成大工程系統(tǒng)編譯的方法交叉編譯中 makefile的例子n CROSS=/work/cgf/2410/n CFLAGS=D__KERNEL__n CFLAGS+=DMODULEn CFLAGS+=I/work/cgf/2410/n CFLAGS+=I/work/cgf/2410/n CFLAGS+=I/work/cgf/2410/\includen CFLAGS+=Wall Wstrict prototypesWnotrigraphs Osmapcsn CFLAGS+=fnostrictaliasingfnomonfnomonpipemapcs32n CFLAGS+=march=armv4mtune=arm9tdmimshortloadbytesmsoftfloatn CFLAGS+=DKBUILD_BASENAME=gpiodrvn all:n :n $(CROSS)gcc$(CFLAGS)con clean:n rmf*.o系統(tǒng)變量系統(tǒng)變量make就會這個就會這個參數(shù)所指定的參數(shù)
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1