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

正文內(nèi)容

gnumake中文手冊_完整-全文預(yù)覽

2024-12-12 04:38 上一頁面

下一頁面
  

【正文】 ―GNUmakefile‖的文件, make同樣會(huì)提示 ―make: *** No targets specified and no makefile found. Stop.‖;而在 make的工作 目錄下存在這樣一個(gè)文件( ―Makefile‖、 ―makefile‖或者 ―GNUmakefile‖),那么 make執(zhí)行時(shí)的 ―終極目標(biāo) ‖就是當(dāng)前目錄下這個(gè)文件中所定義的 ―終極目標(biāo) ‖。 變量 MAKEFILES 如果在當(dāng)前環(huán)境定義了一個(gè) ―MAKEFILES‖環(huán)境變量, make執(zhí)行時(shí)首先將此變 2020年 9月 11日 24GNU make中文手冊 量的值作為需要讀入的 Makefile文件,多個(gè)文件之間使用空格分開。以下是這兩種方式的 比較: 使用 ―include FILENAMES...‖ , make 程 序 處 理 時(shí) , 如 果―FILENAMES‖列表中的任何一個(gè)文件不能正常讀取而且不存在一個(gè)創(chuàng)建此文件的規(guī)則時(shí) make程序?qū)?huì)提示錯(cuò)誤并退出。當(dāng)完成讀取整個(gè) Makefile后, make將試圖使用規(guī)則來創(chuàng)建通過指示符 ―include‖指定的但未找到的文件(參考 makefile文件的重建 一節(jié)),當(dāng)不能創(chuàng)建它時(shí)(沒有創(chuàng)建這個(gè)文件的規(guī)則), make將提示致命錯(cuò)誤并退出。其它版本的 make已經(jīng)使用這種方式來處理。它們需要使用一組通用的變量定義(可參考 如何設(shè)置變量 一節(jié))或者模式規(guī)則(可參考 模式規(guī)則 一節(jié))。 來看一個(gè)例子,存在三個(gè) .mk文件 、 、 , ―$(bar)‖被擴(kuò)展為 ―bish bash‖。指示符 ―include‖和文件 名之間、多個(gè)文件之間使用空格或者 [Tab]鍵隔開。Makefile中包含其它文件所需要使用的關(guān)鍵字是 ―include‖,和 c語言對頭文件的包含方式一致。當(dāng)執(zhí)行 ―make ‖時(shí)。給 make指定 makefile文件的格式為: ―f NAME‖或者 ―—file=NAME‖,它指定文件 ―NAME‖作為執(zhí)行 make時(shí)讀取的 makefile文件。而 ―GNUmakefile‖是我們不推薦使用的文件名,因?yàn)橐源嗣奈募挥?―GNU make‖才可以識(shí)別,而其他版本的make程序只會(huì)在工作目錄下 ―makefile‖和 ―Makefile‖這兩個(gè)文件。 Makefile中變量的引用和 C語言中的宏類似(但 是其實(shí)質(zhì)并不相同,后續(xù)將會(huì)詳細(xì)討論)。當(dāng)在 Makefile中需要使用字符 ―‖時(shí),可以使用反斜線加 ―‖( \)來實(shí)現(xiàn)(對特殊字符 ―‖的轉(zhuǎn)義),其表示將 ―‖作為一字符而不是注釋的開始標(biāo)志。參考 多行定義 一節(jié) ?? 注釋: Makefile中 ―‖字符后的內(nèi)容被作為是注釋內(nèi)容(和 shell腳本一樣)處理。關(guān)于變量的詳細(xì)討論可參考 第六章 Makefile中的變量 ?? Makefile指示符:指示 符指明在 make程序讀取 makefile文件過程中所要執(zhí)行的一個(gè)動(dòng)作。 ?? 隱含規(guī)則:它是 make根據(jù)一類目標(biāo)文件(典型的是根據(jù)文件名的后綴)而自動(dòng)推導(dǎo)出來的規(guī)則。關(guān)于 ―規(guī)則 ‖、 ―變量 ‖和 ―Makefile指示符 ‖將在后續(xù)的章節(jié)進(jìn)行詳細(xì)的討論。 上例中因?yàn)槟繕?biāo) ―clean‖沒有出現(xiàn)在終極目標(biāo) ―edit‖依賴關(guān)系中(終極目標(biāo)的直接依賴或者間接依賴),所以我們執(zhí)行 ―make‖時(shí),目標(biāo) ―clean‖所在的規(guī)則將不會(huì)被處理。因?yàn)槲覀兊某踔圆⒉皇钱?dāng)你在命令行上輸入 make以后執(zhí)行刪除動(dòng)作。 2020年 9月 11日 18GNU make中文手冊 .PHONY : clean clean : rm edit $(objects) 這兩個(gè)實(shí)現(xiàn)有兩點(diǎn)不同: 1. 通過 ―.PHONY‖特殊目標(biāo)將 ―clean‖目標(biāo)聲明為偽目標(biāo)。這樣書寫的好處是后期維護(hù)會(huì)非常方便,而且這樣做會(huì)使 Makefile會(huì)更清晰、明了。否則后期維護(hù)將會(huì)是一件非常痛苦的事情。其它兩個(gè)頭文件作為規(guī)則所有目標(biāo)文件(多個(gè) .o文件)的依賴文件。形成另外一種風(fēng)格的 Makefile。幾乎在所有的 Makefile中都用到了 make的隱含規(guī)則, make的隱含規(guī)則是非常重要的一個(gè)概念。因此上邊的例子就可以以更加簡單的方式書寫,我們同樣使用變量―objects‖。對應(yīng)是指:文件名除后綴外,其余都相同的兩個(gè)文件),而且使用正確的命令來重建這個(gè)目標(biāo)文件。 自動(dòng)推導(dǎo)規(guī)則 在使用 make編譯 .c源文件時(shí),編譯 .c源文件規(guī)則的命令可以不用明確給出。在上例的 Makefile中我們可以添加這樣一行: objects = \ ―objects‖作為一個(gè)變量,它代表所有的 .o文件的列表。添加時(shí)可能在 ―edit‖的依賴列表中加入了、但卻忘記了給命令行中添加,或者相反。 因此,需要正確的編譯一個(gè)工程。對于任意一個(gè)規(guī)則執(zhí)行的過程都是按照依賴文件列表順序,對于規(guī)則中的每一個(gè)依賴文件,使用同樣方式(按照同樣的過程)去重建它,在完成對所有依賴文件的重建之后,最后一步才是重建此規(guī)則的目標(biāo)。首先為第一個(gè)依賴文件( )尋找創(chuàng)建規(guī)則,如果第一個(gè)依賴文件依賴于其它文件( 、 ),則同樣為這個(gè)依賴文件尋找創(chuàng)建規(guī)則(創(chuàng)建 ,通常源文件和頭文件已經(jīng)存在,也不存在重建它們的規(guī)則)……,直到為所有的依賴文件找到合適的創(chuàng)建規(guī)則。 3. 目標(biāo)文件 ―edit‖存在,它比它的任何一個(gè)依賴文件都 ―更新 ‖,則什么也不做。在上例的 Makefile中沒有哪個(gè)規(guī)則的目標(biāo)是 .c或者 .h文件,所以沒有重建 .c和 .h文件的規(guī)則。則根據(jù)規(guī)則重新編譯生成它; 3. 目標(biāo) .o文件存在,目標(biāo) .o文件比它的任何一個(gè)依賴文件(的 .c源文件、 .h文件) ―更新 ‖(它的依賴文件在上一次 make之后沒有被修改),則什么也不做。 make讀取當(dāng)前目錄下的Makefile文件,并將 Makefile文件中的第一個(gè)目標(biāo)作為其執(zhí)行的 ―終極目標(biāo) ‖,開始處理第一個(gè)規(guī)則(終極目標(biāo)所在的規(guī)則)。 make如何工作 默認(rèn)的情況下, make執(zhí)行的是 Makefile中的第一個(gè)規(guī)則,此規(guī)則的第一個(gè)目標(biāo)稱之為 ―最終目的 ‖或者 ―終極目標(biāo) ‖(就是一個(gè) Makefile最終需要更新或者創(chuàng)建的目標(biāo), 參考 指定終極目標(biāo) 一節(jié))。而且目標(biāo) ―clean‖沒有任何依賴文件,它只有一個(gè)目的,就是通過這個(gè)目標(biāo)名來執(zhí)行它所定義的命令。 目標(biāo) ―clean‖不是一個(gè)文件,它僅僅代表執(zhí)行一個(gè)動(dòng)作的標(biāo)識(shí)。就是說所有的命令行必需以 [Tab] 字符開始,但并不是所有的以 [Tab]鍵出現(xiàn)行都是命令行。在這個(gè)例子中, ―edit‖的依賴為 8個(gè) .o文件;而 ―‖的依賴文件為 ―‖和―‖。 在這個(gè) Makefile中,我們的目標(biāo)( target)就是可執(zhí)行文件 ―edit‖和那些 .o文件( ,…. );依賴( prerequisites)就是冒號(hào)后面的那些 .c 文件和 .h文件。但需要注意:反斜線之后不能有空格(這也是大家最容易犯的錯(cuò)誤,錯(cuò)誤比較隱蔽)。 2020年 9月 11日 11GNU make中文手冊 簡單的示例 本小節(jié)開始我們在第一小節(jié)中提到的例子。 一個(gè) Makefile文件中通常還包含了除規(guī)則以外的很多 東西(后續(xù)我們會(huì)一步一步的展開)。它所定義的命令用來刪除 make過程產(chǎn)生的中間文件(進(jìn)行清理工作)。這也是書寫 Makefile中容易產(chǎn)生,而且比較隱蔽的錯(cuò)誤。它限定了 make執(zhí)行這條規(guī)則時(shí)所需要的動(dòng)作。生成規(guī)則目標(biāo)所需要的文件名列表。通常是最后需要生成的文件名或者為了實(shí)現(xiàn)這個(gè)目的而必需的中間過程文件名。 后兩種情況是 make只將修改過的 C源文件重新編譯生成 .o文件,對于沒有修改的文件不進(jìn)行任何工作。這個(gè) Makefile提供給了 make必要的信息, make程序根據(jù) Makefile中的規(guī)則描述執(zhí)行相關(guān)的命令來完成指定的任務(wù)(如:編譯、鏈接和清除編譯過程文件等)。 好了。. 以上時(shí) GNU make的 bug反饋方式。s best to cut and paste them into your report. When generating this small makefile, be sure to not use any nonfree or unusual tools in your mands: you can almost always emulate what such a tool would do with simple shell mands. Finally, be sure to explain what you expected to occur。 it39。 we cannot promise to do anything but we might well want to fix it. Before reporting a bug, make sure you39。 而且可以通過 make的命令行選項(xiàng)來指定需要重新編譯的文件。 make會(huì)自動(dòng)根據(jù)修改情況完成源文件的對應(yīng) .o文件的更新、庫文件的更新、最終的可執(zhí)行程序的更新。這個(gè)文件告訴make以何種方式編譯源代碼和鏈接程序。多個(gè)可執(zhí)行程序可共享庫 文件的代碼段(多個(gè)程序可以共享的使用庫中的某一個(gè)模塊,共享代碼,不共享數(shù)據(jù))。 共享庫:也是多個(gè) .o文件的集合,但是這些 .o文件時(shí)有編譯器按照一種特殊的方式生成( Linux中,共享庫文件格式通常為 ―ELF‖格式。它是多個(gè) .o文件的集合。鏈接器不檢查函數(shù)所在的源文件,只檢查所有 .o文件中的定義的符號(hào)。目標(biāo)文件在 Linux中默認(rèn)后綴為 ―.o‖(如 ―‖的目標(biāo)文件為 ―‖)。編譯高級(jí)語言后生成的指令雖然可被機(jī)器識(shí)別,但是還不能被執(zhí)行。工程中根據(jù)源文件的修改情況來進(jìn)行代碼的編譯正是使用了 make的這個(gè)特征。 Make工作不僅僅可以用來編譯源代碼,它也可以完成一些其它的功能。我整理這個(gè)文檔就是希望能使眾多的 Linux環(huán)境下的程序員能夠比較容易的掌握和學(xué)會(huì)使用 GNU make。像 C語言有自己的格式、關(guān)鍵字和函數(shù)一樣。整個(gè)工程完全自動(dòng)編譯,極大提高了效率。 所要完成的 Makefile文件描述了整個(gè)工程的編譯、連接等規(guī)則。 GNU make 中文手冊 下載地址: 2020年 9月 11日 6GNU make中文手冊 第一章:概述 概述 Linux環(huán)境下的程序員如果不會(huì)使用 GNU make來構(gòu)建和管理自己的工程,應(yīng)該不能算是一個(gè)合格的專業(yè)程序員,至少不能稱得上是 Unix程序員。此文件正是 make正常工作的基礎(chǔ)。編譯整個(gè)工程你所要做的唯一的一件事就是在 shell 提示符下輸入 make命令。Makefile有自己的書寫格式、關(guān)鍵字、函數(shù)。 目前, 系統(tǒng)完整的介紹 make工具和如何編寫 Makefile的中文文檔比較少。當(dāng)然 make工具不僅僅是用來管理 C語言工程的,那些編譯器只要能夠在 shell下運(yùn)行的語言所構(gòu)建的工程都可以使用 make工具來管理。 GNU make工具為我們實(shí)現(xiàn)這個(gè)目的提供了非常有利的支持。 準(zhǔn)備知識(shí) 在開始我們關(guān)于 make的討論之前,首先需要明確一些基本概念: 編譯:把高級(jí)語言書寫的代碼轉(zhuǎn)換為機(jī)器可識(shí)別的機(jī)器指令。通常,一個(gè)高級(jí)語言的源文件都可對應(yīng)一個(gè)目標(biāo)文件。 鏈接:將多 .o文件,或者 .o文件和庫文件鏈接成為可被操作系統(tǒng)執(zhí)行的可執(zhí)行程序( Linux環(huán)境下,可執(zhí)行文件的格式為 ―ELF‖格式)。 靜態(tài)庫:又稱為文檔文件( Archive File)。使用 ―ar‖工具維護(hù)和管理靜態(tài)庫。使用此共享庫的程序在運(yùn)行時(shí),共享庫被動(dòng)態(tài)加載到內(nèi)存并和主程序在內(nèi)存中進(jìn)行連接。 2020年 9月 11日 8GNU make中文手冊 第二章 GNU make 介紹 GNU make 介紹 make在執(zhí)行時(shí),需要一個(gè)命名為 Makefile的文件。當(dāng)對工程中的若干源文件修改以后,需要根據(jù)修改來更新可執(zhí)行文件或者庫文件,正如前面提到的你只需要在shell下執(zhí)行 ―make‖。此數(shù)據(jù)庫中記錄了所有各 個(gè)文件之間的相互關(guān)系,以及它們的關(guān)系描述)來重建它,對于不需要重建的文件make什么也不做。ve found a bug, please report it to the developers。s not clear whether you should be able to do something or not, report that too。t paraphrase these messages: it39。. Be sure also to include the type of machine and operating system you are using. One way to obtain this information is by looking at the final lines of output from the mand `make help39??梢酝ㄟ^以上的方式和渠道反饋。 本節(jié)將分析一個(gè)簡單的 Makefile,它對一個(gè)包含 8
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1