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

正文內容

uclinux下應用程序開發(fā)-在線瀏覽

2025-07-16 11:59本頁面
  

【正文】 SIC語言的一種命令解釋語言。有了這些信息, make 會檢查磁盤的文件,如果目標文件的日期 (即該文件生成或最后修改的日期 )至少比它的一個依賴文件日期早的話, make 就會執(zhí)行相應的命令,以更新目標文件。 還可以在 make 的命令行中指定別的文件名。如果要使用其他文件作為 makefile, 則可利用類似下面的 make 命令選項指定 makefile 文件: $ make f makefilename 一個 makefile 主要含有一系列的規(guī)則 , 如下: 目標文件名 : 依賴文件名 (tab鍵 ) 命令 第一行稱之為規(guī)則,第二行是執(zhí)行規(guī)則的命令,必須要以 tab鍵開始。 executable : gcc o executable : gcc Wall O g c o : gcc Wall O g c o 這是一個最簡單的 makefile, make從第一條規(guī)則開始, executable是 makefile最終要生成的目標文件。但是,在檢查文件 和 的日期之前,它會往下查找那些把 或 做為目標文件的規(guī)則。 makefile后面的文件中再也找不到生成這個依賴文件的規(guī)則了。 同樣 make對文件 做類似的檢查,它的依賴文件是 , 對 。 有了 makefile, 對任何一個源文件進行修改后,所有依賴于該文件的目標文件都會被重新編譯 (因為 .o 文件依賴于 .c 文件 ),進而最終可執(zhí)行文件會被重新鏈接(因為它所依賴的 .o 文件被改變了 ),再也不用手工去一個個修改了。 它們幾乎可以從任何地方被引用 , 可以代表很多類型 , 例如可以存儲文件名列表 , 存儲可執(zhí)行文件名和編譯器標志等 。 如果以后要引用到該宏時 , 使用 $ (宏名 ), 或者是 ${宏名 }, 注意宏名一定要寫在圓或花括號之內 。 在 make中還有一些已經定義好的內部變量 , 有幾個較常用的變量是 $, $ , $?, $*, $^ (注意:這些變量不需要括號括住 )。 利用這些變量 , 可以把上面的 makefile 寫成 : OBJS = CC = gcc CFLAGS = Wall O g executable: $(OBJS) $(CC) $^ o $ : $(CC) $(CFLAGS) –c $ o $ : $(CC) $(CFLAGS) c $ o $ 可以將宏變量應用到其他許多地方,尤其是當把它們和函數(shù)混合使用的時候,正確使用宏,會給開發(fā)者帶來極大的便利 隱含規(guī)則 請注意,在上面的例子里,幾個產生 .o文件的命令都是以 .c 文件作為依賴文件產生 .o 目標 (obj)文件,這是一個標準的生成目標文件的步驟。實際上 make已經知道該如何生成這些目標文件,它使用變量 CC 做為編譯器,并且傳遞宏 CFLAGS 給 C 編譯器 (CXXFLAGS用于 C++ 編譯器 ), CPPFLAGS(C預處理選項 ), TARGET_ARCH (就目前例子而言,還不用考慮這個宏 ),然后它加入開關選項 c , 后面跟預定義宏 $(第一個依賴文件名 ),最后是開關項 o, 后跟預定義宏 $ (目標文件名 )。 Unix系統(tǒng)通常支持一種基于文件擴展名即文件名后綴的隱含規(guī)則 。這種規(guī)則更加通用,因為可以利用模式規(guī)則定義更加復雜的依賴性規(guī)則。此時 , 可以通過使用所謂的偽目標來達到這一目的 。 因此 , make總是會假設它需要被生成 , 當make把該偽目標文件的所有依賴文件都更新后 , 就會執(zhí)行它的規(guī)則里的命令行 。 make 把這個 39。 做為它的主要目標,每次執(zhí)行時都會嘗試把 39。 更新。all39。all39。可既然這個文件并不存在,所以 make 會嘗試更新 all 規(guī)則,因此就檢查它的依賴文件 executable1, exectable2 是否需要更新,如果需要,就把它們更新,從而達到生成兩個目標文件的目的。例如,在 GNU Make 里有一個名為 39。 的函 數(shù),它只有一個參數(shù),功能是展開成一列所有符合由其參數(shù)描述的文件名,文件間以空格間隔。.c39。當然你不需要一定要把結果存入一個變量。它需要3個參數(shù):第一個是一個需要匹配的模式,第二個表示用什么來替換它,第三個是一個需要被處理的由空格分隔的字列。.c39。.o39。.c39。注意這里的 % 符號是通配符,匹配一個或多個字符,它每次所匹配的字符串叫做一個 ‘ 柄 ’ (stem) 。 makefile的一個具體例子 INCLUDES =I/home/nie/mysrc/include \ I/home/nie/mysrc/extern/include \ I/home/nie/mysrc/src \ I/home/nie/mysrc/libsrc \ I. \ I.. EXT_CC_OPTS = DEXT_MODE CPP_REQ_DEFINES = DMODEL=tune1 DRT DNUMST=2 \ DTID01EQ=1 DNCSTATES=0 \ DMT=0 DHAVESTDIO RTM_CC_OPTS = DUSE_RTMODEL CFLAGS = O g CFLAGS += $(CPP_REQ_DEFINES) CFLAGS += $(EXT_CC_OPTS) CFLAGS +=$(RTM_CC_OPTS) SRCS = \ \ \ OBJS = $(SRCS:.c=.o) RM = rm –f CC = gcc LD = gcc all: tune1 %.o : %.c $(CC) c o $ $(CFLAGS) $(INCLUDES) $ tune1 : $(OBJS) $(LD) o $ $(OBJS) lm clean : $(RM) $(OBJS 在這個 makefile中首先定義了十個宏: 39。(省略號代表 I后面的內容 ), 39。 表示將dirname所指的目錄加入到程序頭文件目錄列表中去 , 是在進行預處理過程中使用的參數(shù); 39。 表 示 在 程 序 中 定 義 了 宏EXT_MODE, 等價于在源代碼寫入語句 39。 ; 接下來的兩個宏定義 CPP_REQ_DEFINES 和 RTM_CC_OPTS起到和EXT_CC_OPTS類似的作用; 39。是編譯器的編譯選項 , 表示在編譯的過程中對代碼進行基本優(yōu)化 , 并產生能被 GNU調試器 (如 gdb)使用的調試信息; 39。 表示對這個宏定義在原來的基礎上增加新的內容; 39。代表了所有要編譯的源代碼文件列表; 39。表示把宏 SRC所代表的所有以 .c結尾的文件名用 .o結尾的文件名替換 , 即表示各個源文件所對應的目標文件名; 39。 表示刪除命令 , f是強制刪除選項 , 使用該符號 , 在對文件進行刪除時 , 沒有提示; 39。表示編譯器是用 gcc; 39。 表示鏈接命令是用 gcc; all和 clean是兩個偽目標 , 在使用 make命令的時候 , 如果不指明目標文件名 , 則是以在 makefile 中出現(xiàn)的第一個目標作為最終目標 , 所以如果鍵入命令 make, 則偽目標 all被作為最終的目標而執(zhí)行 , 由于這個文件并不存在 , 所以 make 會嘗試更新 all 規(guī)則 , 因此就檢查它的依賴文件 tune1 是否需要更新 , 如果需要 , 就把它更新 , 這樣偽目標下
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1