国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第十一部分 隱含規(guī)則(二)

這篇具有很好參考價值的文章主要介紹了第十一部分 隱含規(guī)則(二)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、隱含規(guī)則使用的變量

1、關(guān)于命令的變量。

2、關(guān)于命令參數(shù)的變量

二、隱含規(guī)則鏈


一、隱含規(guī)則使用的變量

????????在隱含規(guī)則中的命令中,基本上都是使用了一些預(yù)先設(shè)置的變量。你可以在你的 makefile 中改變這些變量的值,或是在 make 的命令行中傳入這些值,或是在你的環(huán)境變量 中設(shè)置這些值,無論怎么樣,只要設(shè)置了這些特定的變量,那么其就會對隱含規(guī)則起作用。 當(dāng)然,你也可以利用 make 的“-R”或“--no–builtin-variables”參數(shù)來取消你所定義的 變量對隱含規(guī)則的作用。

????????例如,第一條隱含規(guī)則——編譯 C 程序的隱含規(guī)則的命令是“$(CC) –c $(CFLAGS) $(CPPFLAGS)”。Make 默認的編譯命令是“cc”,如果你把變量“$(CC)”重定義成“gcc”, 把變量“$(CFLAGS)”重定義成“-g”,那么,隱含規(guī)則中的命令全部會以“gcc –c -g $(CPPFLAGS)”的樣子來執(zhí)行了。

????????我們可以把隱含規(guī)則中使用的變量分成兩種:一種是命令相關(guān)的,如“CC”;一種是參 數(shù)相的關(guān),如“CFLAGS”。下面是所有隱含規(guī)則中會用到的變量:

1、關(guān)于命令的變量。

AR

函數(shù)庫打包程序。默認命令是“ar”。

AS

匯編語言編譯程序。默認命令是“as”。

CC

C 語言編譯程序。默認命令是“cc”。

CXX

C++語言編譯程序。默認命令是“g++”。

CO

從 RCS 文件中擴展文件程序。默認命令是“co”。

CPP

C 程序的預(yù)處理器(輸出是標準輸出設(shè)備)。默認命令是“$(CC) –E”。

FC

Fortran 和 Ratfor 的編譯器和預(yù)處理程序。默認命令是“f77”。

GET

從 SCCS 文件中擴展文件的程序。默認命令是“get”。

LEX

Lex 方法分析器程序(針對于 C 或 Ratfor)。默認命令是“l(fā)ex”。

PC

Pascal 語言編譯程序。默認命令是“pc”。 YACC Yacc 文法分析器(針對于 C 程序)。默認命令是“yacc”。

YACCR

Yacc 文法分析器(針對于 Ratfor 程序)。默認命令是“yacc –r”。

MAKEINFO

轉(zhuǎn)換 Texinfo 源文件(.texi)到 Info 文件程序。默認命令是“makeinfo”。

TEX

從 TeX 源文件創(chuàng)建 TeX DVI 文件的程序。默認命令是“tex”。

TEXI2DVI

從 Texinfo 源文件創(chuàng)建軍 TeX DVI 文件的程序。默認命令是“texi2dvi”。

WEAVE

轉(zhuǎn)換 Web 到 TeX 的程序。默認命令是“weave”。

CWEAVE

轉(zhuǎn)換 C Web 到 TeX 的程序。默認命令是“cweave”。

TANGLE

轉(zhuǎn)換 Web 到 Pascal 語言的程序。默認命令是“tangle”。

CTANGLE

轉(zhuǎn)換 C Web 到 C。默認命令是“ctangle”。

RM

刪除文件命令。默認命令是“rm –f”。

2、關(guān)于命令參數(shù)的變量

????????下面的這些變量都是相關(guān)上面的命令的參數(shù)。如果沒有指明其默認值,那么其默認值都 是空。

ARFLAGS

函數(shù)庫打包程序 AR 命令的參數(shù)。默認值是“rv”。

ASFLAGS

匯編語言編譯器參數(shù)。(當(dāng)明顯地調(diào)用“.s”或“.S”文件時)。

CFLAGS

C 語言編譯器參數(shù)。

CXXFLAGS

C++語言編譯器參數(shù)。

COFLAGS

RCS 命令參數(shù)。

CPPFLAGS

C 預(yù)處理器參數(shù)。( C 和 Fortran 編譯器也會用到)。

FFLAGS

Fortran 語言編譯器參數(shù)。

GFLAGS

SCCS “get”程序參數(shù)。

LDFLAGS

鏈接器參數(shù)。(如:“l(fā)d”)

LFLAGS

Lex 文法分析器參數(shù)。

PFLAGS

Pascal 語言編譯器參數(shù)。

RFLAGS

Ratfor 程序的 Fortran 編譯器參數(shù)。

YFLAGS

Yacc 文法分析器參數(shù)。

二、隱含規(guī)則鏈

????????有些時候,一個目標可能被一系列的隱含規(guī)則所作用。例如,一個[.o]的文件生成,可 能會是先被 Yacc 的[.y]文件先成[.c],然后再被 C 的編譯器生成。我們把這一系列的隱含 規(guī)則叫做“隱含規(guī)則鏈”。

????????在上面的例子中,如果文件[.c]存在,那么就直接調(diào)用 C 的編譯器的隱含規(guī)則,如果沒 有[.c]文件,但有一個[.y]文件,那么 Yacc 的隱含規(guī)則會被調(diào)用,生成[.c]文件,然后, 再調(diào)用 C 編譯的隱含規(guī)則最終由[.c]生成[.o]文件,達到目標。

????????我們把這種[.c]的文件(或是目標),叫做中間目標。不管怎么樣,make 會努力自動推 導(dǎo)生成目標的一切方法,不管中間目標有多少,其都會執(zhí)著地把所有的隱含規(guī)則和你書寫的 規(guī)則全部合起來分析,努力達到目標,所以,有些時候,可能會讓你覺得奇怪,怎么我的目 標會這樣生成?怎么我的 makefile 發(fā)瘋了?

????????在默認情況下,對于中間目標,它和一般的目標有兩個地方所不同:第一個不同是除非 中間的目標不存在,才會引發(fā)中間規(guī)則。第二個不同的是,只要目標成功產(chǎn)生,那么,產(chǎn)生 最終目標過程中,所產(chǎn)生的中間目標文件會被以“rm -f”刪除。

???????? 通常,一個被 makefile 指定成目標或是依賴目標的文件不能被當(dāng)作中介。然而,你可 以明顯地說明一個文件或是目標是中介目標,你可以使用偽目標“.INTERMEDIATE”來強制 聲明。(如:.INTERMEDIATE : mid )

???????? 你也可以阻止 make 自動刪除中間目標,要做到這一點,你可以使用偽目標 “.SECONDARY”來強制聲明(如:.SECONDARY : sec)。你還可以把你的目標,以模式的方 式來指定(如:%.o)成偽目標“.PRECIOUS”的依賴目標,以保存被隱含規(guī)則所生成的中間 文件。

???????? 在“隱含規(guī)則鏈”中,禁止同一個目標出現(xiàn)兩次或兩次以上,這樣一來,就可防止在 make 自動推導(dǎo)時出現(xiàn)無限遞歸的情況。

????????Make 會優(yōu)化一些特殊的隱含規(guī)則,而不生成中間文件。如,從文件“foo.c”生成目標 程序“foo”,按道理,make 會編譯生成中間文件“foo.o”,然后鏈接成“foo”,但在實 際情況下,這一動作可以被一條“cc”的命令完成(cc –o foo foo.c),于是優(yōu)化過的規(guī) 則就不會生成中間文件。文章來源地址http://www.zghlxwxcb.cn/news/detail-797400.html

到了這里,關(guān)于第十一部分 隱含規(guī)則(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • jenkins漢化一部分問題(一半中文一半英文)解決

    jenkins漢化一部分問題(一半中文一半英文)解決

    安裝中文插件“Locale plugin”和“Localization: Chinese (Simplified)后,先設(shè)置為zh_US重新啟動,再設(shè)置回來 其他插件重啟Jenkins后,又出現(xiàn)了部分中文簡體不翻譯的情況。 方法如下,可以臨時完美修復(fù)。 1. 將語言設(shè)定為zh_US,Jenkins切換為英文。 2. 調(diào)用restart重啟Jenkins:http://jenkisn網(wǎng)址

    2024年02月11日
    瀏覽(38)
  • 第三十一部分:大模型在搜索引擎領(lǐng)域

    在過去的幾年里,搜索引擎技術(shù)發(fā)展迅速,從簡單的查詢到智能的語義搜索和知識圖譜。隨著大模型在自然語言處理(NLP)和計算機視覺等領(lǐng)域的成功應(yīng)用,搜索引擎也開始逐漸引入大模型技術(shù),以提高搜索質(zhì)量和用戶體驗。本文將從大模型在搜索引擎領(lǐng)域的背景、核心

    2024年02月20日
    瀏覽(31)
  • Echarts使用中遇到圖表只顯示一部分的情況

    Echarts使用中遇到圖表只顯示一部分的情況

    ????????在引用完Echarts后,發(fā)現(xiàn)圖只顯示了一小部分,檢查布局也沒有任何問題,然后通過控制臺 檢查,無論怎么去調(diào)它所在容器的寬高都沒有任何的變化,調(diào)canves的寬高也只有拉伸的效果。 ?????????出現(xiàn)這種現(xiàn)象的原因是:Echarts的依賴是惰性的,需要手動設(shè)置r

    2024年02月11日
    瀏覽(30)
  • Git合并固定分支的某一部分至當(dāng)前分支

    Git合并固定分支的某一部分至當(dāng)前分支

    在 Git 中,通常使用 git merge 命令來將一個分支的更改合并到另一個分支。如果你只想合并某個分支的一部分代碼,可以使用以下兩種方法: 首先,從要合并的源分支(即要提取代碼的分支)中創(chuàng)建并切換到一個新的臨時分支。這樣可以在該分支上進行修改,以便選擇性地合

    2024年02月21日
    瀏覽(89)
  • [云原生] 二進制安裝K8S一部分

    [云原生] 二進制安裝K8S一部分

    目前Kubernetes最新版本是v1.25,但大部分公司一般不會使用最新版本。 目前公司使用比較多的:老版本是v1.15,因為v1.16改變了很多API接口版本,國內(nèi)目前使用比較多的是v1.18、v1.20。 ?組件部署: mater節(jié)點 mater01 192.168.136.100 kube-apiserver kube-controller-manager kube-scheduler etcd ? ? ? ?

    2024年02月22日
    瀏覽(27)
  • RV1126與RV1109 AI系統(tǒng)設(shè)計概要(一部分)

    RV1126與RV1109 AI系統(tǒng)設(shè)計概要(一部分)

    ????????四核核 Cortex-A7,ARM架構(gòu)V7-A指令,獨立Neon SIMD(一種高級單指令多數(shù)據(jù)擴展指令集,可執(zhí)行并行數(shù)據(jù)處理),與獨立FPU(浮點計算)。 (RV1109雙核A7) ????????每核有32KB L1 I-Cache(一級指令高速緩存),32KB L1 D-Cache(一級數(shù)據(jù)高速緩存) ????????512KB L2 Cache(二極

    2024年02月07日
    瀏覽(24)
  • AD18批量修改一部分或者全部器件位號的方法!

    AD18批量修改一部分或者全部器件位號的方法!

    ? ? ? ?現(xiàn)在任何一個公司嵌入式硬件開發(fā)的主板全都是有很多sheet的,而硬件工程師做的往往也都是在老的圖紙上進行修改或者再設(shè)計,也正因為如此,我們在畫原理圖的時候盡量不要去改動已有部分的位號,以免PCB工程師罵人! 就算自己畫PCB的時候也會暈頭轉(zhuǎn)向! ? ? ?

    2024年01月17日
    瀏覽(30)
  • 過去一周寫過的算法題的一部分(dfs,貪心)

    (首先說明一點哈:這是我第一次寫博客,寫的不好大家見諒) 自我介紹:一個腦子不好的大一學(xué)生,c語言接觸還沒到半年,若涉及到效率等問題,各位都可以在評論區(qū)提出見解,謝謝啦 (題目鏈接:P1135 奇怪的電梯 - 洛谷 | 計算機科學(xué)教育新生態(tài) (luogu.com.cn)) 我一開始用

    2024年02月03日
    瀏覽(19)
  • 孫宇晨最新研判:加密貨幣將成為全球金融基礎(chǔ)設(shè)施的一部分

    孫宇晨最新研判:加密貨幣將成為全球金融基礎(chǔ)設(shè)施的一部分

    近日,波場TRON創(chuàng)始人、火幣HTX全球顧問委員會委員孫宇晨接受了在加密社區(qū)有重要影響力的媒體平臺Bankless的專訪,就自己的從業(yè)經(jīng)歷、涉足加密行業(yè)的理想、波場TRON本身的發(fā)展和未來的市場走向等話題進行了詳細的分享。 孫宇晨認為,波場TRON的使命是為那些沒有銀行賬戶的人

    2024年03月21日
    瀏覽(26)
  • AR”將會成為“更加日?;囊苿釉O(shè)備應(yīng)用的一部分”嗎

    AR”將會成為“更加日常化的移動設(shè)備應(yīng)用的一部分”嗎

    目錄 1:AR是什么 2:AR給人類帶來的貢獻 3:人們在生活中可以遇到許多 AR 技術(shù)應(yīng)用 4:AR 技術(shù)的未來發(fā)展的趨勢: ? ? ?大學(xué)主攻VR,從大一就對VR的知識,設(shè)備,已經(jīng)所涉及的知識伴隨我的整個大學(xué)時光,今天,我就大家聊聊VR的同胞兄弟AR AR 是增強現(xiàn)實 (Augmented Reality) 的縮

    2024年02月02日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包