亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? build_makefile.txt

?? 怎么樣編寫(xiě)Makefile文件以及實(shí)例
?? TXT
字號(hào):
1:作用 

Make工具最主要也是最基本的功能就是通過(guò)makefile文件來(lái)描述源程序之間的相互關(guān)系并自動(dòng)維護(hù)編譯工作。而makefile 文件需要按照某種語(yǔ)法進(jìn)行編寫(xiě),文件中需要說(shuō)明如何編譯各個(gè)源文件并連接生成可執(zhí)行文件,并要求定義源文件之間的依賴(lài)關(guān)系。makefile 文件是許多編譯器--包括 Windows NT 下的編譯器--維護(hù)編譯信息的常用方法,只是在集成開(kāi)發(fā)環(huán)境中,用戶通過(guò)友好的界面修改 makefile 文件而已。
在 UNIX 系統(tǒng)中,習(xí)慣使用 Makefile 作為 makfile 文件。如果要使用其他文件作為 makefile,則可利用類(lèi)似下面的 make 命令選項(xiàng)指定 makefile 文件: 
  $ make -f Makefile.debug
2:格式: 

在Makefile中也#開(kāi)始的行都是注釋行.Makefile中最重要的是描述文件的依賴(lài)關(guān)系的說(shuō)明。一般的格式是: 

target:components1 components2 

TAB rule 

第一行表示的是依賴(lài)關(guān)系。第二行是規(guī)則。 

target后面各個(gè)元素是以空格分隔的。 

第一個(gè)rule距離頂格就是一個(gè)Tab的間隔。 

--------------------------------------------------------- 
 #It is a example for describing makefile 
 prog : filea.o fileb.o filec.o 
  gcc filea.o fileb.o filec.o -LS -o prog 
 filea.o : filea.c a.h defs 
  gcc -c filea.c 
 fileb.o : fileb.c b.h defs 
  gcc -c fileb.c 
 filec.o : filec.c c.h 
  gcc -c filec.c 
----------------------------------------------------------
這個(gè)描述文檔就是一個(gè)簡(jiǎn)單的makefile文件。 
  上面的例子注意到,第一個(gè)字符為 # 的行為注釋行。第一個(gè)非注釋行指定prog由三個(gè)目標(biāo)文件filea.o、fileb.o和filec.o鏈接生成。第三行描述了如何從prog所依賴(lài)的 文件建立可執(zhí)行文件。接下來(lái)的4、6、8行分別指定三個(gè)目標(biāo)文件,以及它們所依賴(lài)的.c和.h文件以及defs文件。而5、7、9行則指定了如何從目標(biāo)所依賴(lài)的文件建立目標(biāo)。 
  當(dāng)filea.c或a.h文件在編譯之后又被修改,則 make 工具可自動(dòng)重新編譯filea.o,如果在前后兩次編譯之間,filea.C 和a.h 均沒(méi)有被修改,而且 test.o 還存在的話,就沒(méi)有必要重新編譯。這種依賴(lài)關(guān)系在多源文件的程序編譯中尤其重要。通過(guò)這種依賴(lài)關(guān)系的定義,make 工具可避免許多不必要的編譯工作。當(dāng)然,利用 Shell 腳本也可以達(dá)到自動(dòng)編譯的效果,但是,Shell 腳本將全部編譯任何源文件,包括哪些不必要重新編譯的源文件,而 make 工具則可根據(jù)目標(biāo)上一次編譯的時(shí)間和目標(biāo)所依賴(lài)的源文件的更新時(shí)間而自動(dòng)判斷應(yīng)當(dāng)編譯哪個(gè)源文件。
3:Makefile有三個(gè)非常有用的變量 

Makefile文件作為一種描述文檔一般需要包含以下內(nèi)容: 
  ◆ 宏定義 
  ◆ 源文件之間的相互依賴(lài)關(guān)系 
  ◆ 可執(zhí)行的命令
Makefile中允許使用簡(jiǎn)單的宏指代源文件及其相關(guān)編譯信息,在Linux中也稱(chēng)宏為變量。在引用宏時(shí)只需在變量前加$符號(hào),但值得注意的是,如果變量名的長(zhǎng)度超過(guò)一個(gè)字符,在引用時(shí)就必須加圓括號(hào)()。 
下面都是有效的宏引用: 
$(CFLAGS) 
$2 
$Z 
$(Z) 
其中最后兩個(gè)引用是完全一致的。

$@      -- 目標(biāo)文件, 

$^      -- 所有的依賴(lài)文件, 

$<      -- 第一個(gè)依賴(lài)文件。 

//--------------------------------- 

//*************一個(gè)例子 

//--------------------------------- 

//----------------------------------------------------------------------------- 

/* main.c */ 

#include "mytool1.h" 

#include "mytool2.h" 

intmain( void ) 

{ 

       mytool1_print("hello"); 

       mytool2_print("hello"); 

} 

/* mytool1.h */ 

#ifndef _MYTOOL_1_H 

#define _MYTOOL_1_H 

voidmytool1_print(char *print_str); 

#endif 

/* mytool1.c */ 

#include "mytool1.h" 

voidmytool1_print(char *print_str) 

{ 

       printf("This is mytool1 print %s\n",print_str); 

} 

/* mytool2.h */ 

#ifndef _MYTOOL_2_H 

#define _MYTOOL_2_H 

voidmytool2_print(char *print_str); 

#endif 

/* mytool2.c */ 

#include "mytool2.h" 

voidmytool2_print(char *print_str) 

{ 

       printf("This is mytool2 print %s\n",print_str); 


} 

當(dāng)然由于這個(gè)程序是很短的我們可以這樣來(lái)編譯: 

gcc -c main.c 

gcc -c mytool1.c 

gcc -c mytool2.c 

gcc -o main main.o mytool1.o mytool2.o 


如果我們使用上面三個(gè)變量,那么我們可以簡(jiǎn)化我們的Makefile文件為: 

# 這是簡(jiǎn)化后的Makefile 
v
main:main.o mytool1.o mytool2.o 

gcc -o $@ $^            //$@ 就是main, $^就是main.o mytool1.o mytool2.o 

main.o:main.c mytool1.h mytool2.h 

gcc -c $<               //$<就是main.c 

mytool1.o:mytool1.c mytool1.h 

gcc -c $<               //$<就是mytool1.c 

mytool2.o:mytool2.c mytool2.h 

gcc -c $<               //$<就是mytool2.c 


經(jīng)過(guò)簡(jiǎn)化后我們的Makefile是簡(jiǎn)單了一點(diǎn),不過(guò)人們有時(shí)候還想簡(jiǎn)單一點(diǎn)。這里我們學(xué)習(xí)一個(gè)Makefile的缺省規(guī)則 

.c.o: 

gcc -c $< 

這個(gè)規(guī)則表示所有的 .o文件都是依賴(lài)與相應(yīng)的.c文件的。例如mytool.o依賴(lài)于mytool.c這樣Makefile還可以變?yōu)椋?

# 這是再一次簡(jiǎn)化后的Makefile 

main:main.o mytool1.o mytool2.o 

gcc -o $@ $^ 

.c.o: 

gcc -c $< 

最常見(jiàn)的書(shū)寫(xiě)方式: 

CC          = gcc 

LD        = ld 

STRIP     = strip 

CFLAGS      := -Os -static -DEZ_OS_LINUX 

CLFLAGS     := -Os -static 

all: main 


EXEC = main 

OBJS = main.o mytool1.o mytool2.o 

INCS = mytool1.h mytool2.h 


all: $(EXEC) 

$(EXEC): $(OBJS) 

    $(CC) $(CFLAGS) -o $@ $(OBJS) 

    $(STRIP) $@ 


clean: 

    -rm -f $(EXEC) *.elf *.gdb *.o 

%.o: %.c $(INCS) 

    $(CC) $(CFLAGS) -c $< -o $@  

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲日韩女同| 国产一区二区三区av电影| 免费在线视频一区| 成人av高清在线| 欧美一区二区视频在线观看2022| 国产喷白浆一区二区三区| 亚洲一区二区三区不卡国产欧美| 国产成人亚洲综合色影视| 91.com视频| 亚洲精品日韩一| 高清视频一区二区| 日韩欧美你懂的| 亚洲一区中文日韩| 成人av免费网站| 欧美国产1区2区| 国产在线观看一区二区| 欧美日韩国产另类不卡| 亚洲欧美中日韩| 懂色av一区二区在线播放| 日韩一区二区精品葵司在线| 一区二区三区日韩| 99re视频精品| 中文字幕在线不卡一区二区三区| 国内精品国产成人国产三级粉色| 欧美一级久久久久久久大片| 亚洲最新视频在线观看| 99久久久久久99| 国产精品久久久久9999吃药| 国产成人精品亚洲日本在线桃色 | 午夜精品123| av成人动漫在线观看| 久久久另类综合| 精品一区二区在线观看| 日韩视频免费直播| 五月激情综合婷婷| 欧美日韩你懂得| 日本中文字幕一区| 91精品国产入口| 久久精品国产精品亚洲精品| 日韩精品一区在线观看| 久久99国产精品免费网站| 日韩精品一区二区三区swag | 欧美一区二区免费视频| 亚洲第一精品在线| 欧美色视频一区| 日韩电影免费一区| 日韩免费一区二区| 韩国女主播一区| 国产嫩草影院久久久久| 欧美日韩一级大片网址| 亚洲精品高清在线| 在线看日本不卡| 亚洲成人免费观看| 欧美精品欧美精品系列| 美女视频网站黄色亚洲| 久久午夜免费电影| 99视频热这里只有精品免费| 亚洲免费看黄网站| 日韩午夜激情免费电影| 国产一区二区三区四区五区美女 | 亚洲一级电影视频| 91精品久久久久久久91蜜桃| 国产真实精品久久二三区| 欧美国产日韩亚洲一区| 91日韩精品一区| 蜜臀国产一区二区三区在线播放 | 国产精品免费人成网站| 成人综合日日夜夜| 亚洲综合自拍偷拍| 日韩视频不卡中文| 成人午夜电影久久影院| 亚洲少妇最新在线视频| 欧美三级韩国三级日本一级| 久久电影国产免费久久电影| 免播放器亚洲一区| 波多野结衣中文字幕一区 | 精品乱人伦小说| 成人h动漫精品一区二区| 亚洲二区在线视频| 久久久精品影视| 在线观看中文字幕不卡| 国产一区二区三区免费看| 亚洲女人****多毛耸耸8| 精品第一国产综合精品aⅴ| 色婷婷综合久久久中文字幕| 美国av一区二区| 日韩理论片网站| 精品国免费一区二区三区| 在线观看不卡一区| 成人一区二区三区视频| 免费成人在线网站| 亚洲欧洲综合另类| 久久嫩草精品久久久精品一| 精品1区2区3区| 色综合夜色一区| 国产成人精品一区二区三区四区| 秋霞影院一区二区| 亚洲午夜精品在线| 国产精品每日更新在线播放网址| 欧美成人艳星乳罩| 欧美精品久久99久久在免费线| 91看片淫黄大片一级在线观看| 国产成人av在线影院| 捆绑调教美女网站视频一区| 亚洲午夜在线电影| 一区二区免费在线播放| 成人免费在线视频| 亚洲国产成人私人影院tom| 精品国产在天天线2019| 欧美一区二区视频在线观看2022| 欧美日韩久久久一区| 在线观看日韩一区| 色综合色综合色综合色综合色综合| 国产成人在线电影| 国产成人av一区二区| 国产在线国偷精品产拍免费yy| 久热成人在线视频| 久久精品国产网站| 日本欧洲一区二区| 免费在线成人网| 蜜臀久久99精品久久久久宅男 | 久久激情五月婷婷| 蓝色福利精品导航| 久久激情综合网| 国内成人自拍视频| 国产精品88av| av在线综合网| 在线视频一区二区三区| 欧美日韩你懂的| 欧美一区二区不卡视频| 日韩精品一区二区三区老鸭窝| www国产精品av| 国产精品蜜臀av| 亚洲国产欧美在线人成| 亚洲国产精品自拍| 日韩一区精品视频| 麻豆一区二区三| 国产91精品露脸国语对白| 不卡在线视频中文字幕| 91精品福利视频| 成人av动漫网站| 成人av资源站| 蜜桃一区二区三区四区| 视频一区在线视频| 成人黄色片在线观看| 色8久久精品久久久久久蜜| 美女视频免费一区| 首页国产欧美日韩丝袜| 日韩女优制服丝袜电影| 国产亚洲欧美一级| 日韩精品自拍偷拍| 午夜在线成人av| 99免费精品视频| 欧美自拍丝袜亚洲| 国产精品―色哟哟| 久久国产精品第一页| 欧美亚洲愉拍一区二区| 国产精品久久午夜| 国产一区美女在线| 日韩欧美一级二级三级久久久| 亚洲综合色成人| 在线观看亚洲a| 亚洲一区二区在线免费看| 99re8在线精品视频免费播放| 亚洲国产电影在线观看| 国产成人亚洲精品青草天美| 精品久久久久久久久久久院品网| 视频一区二区三区入口| 欧美日韩精品欧美日韩精品 | 中文字幕在线观看一区二区| 国产精品白丝jk黑袜喷水| 精品国产乱码久久久久久蜜臀 | 国产伦精品一区二区三区免费迷 | 久久国产人妖系列| 久久久久久亚洲综合影院红桃| www.av亚洲| 日韩精品亚洲专区| 亚洲国产成人午夜在线一区| 欧美色窝79yyyycom| 久久精品国产精品青草| 国产精品久久久久久久久免费樱桃| 99免费精品视频| 粉嫩蜜臀av国产精品网站| 美腿丝袜在线亚洲一区| 日本不卡的三区四区五区| 日韩午夜电影av| 精品一区二区三区免费播放| 久久久精品黄色| www.亚洲色图| 三级在线观看一区二区 | 色婷婷亚洲婷婷| 国产麻豆精品在线| 亚洲成人av电影在线| 亚洲午夜日本在线观看| 久久久久久影视| 88在线观看91蜜桃国自产| 国产91精品久久久久久久网曝门| 国产一区二区精品久久91| 国产成人无遮挡在线视频| youjizz国产精品|