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

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

?? 跟我一起寫(xiě) makefile.txt

?? 一篇比較經(jīng)典的介紹MAKEFILE的技術(shù)文檔!
?? TXT
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):

clean:
rm *.o temp

正像我們前面例子中的“clean”一樣,即然我們生成了許多文件編譯文件,我們也應(yīng)該提供一個(gè)清除它們的“目標(biāo)”以備完整地重編譯而用。 (以“make clean”來(lái)使用該目標(biāo))

因?yàn)?,我們并不生成“clean”這個(gè)文件?!皞文繕?biāo)”并不是一個(gè)文件,只是一個(gè)標(biāo)簽,由于“偽目標(biāo)”不是文件,所以make無(wú)法生成它的依賴關(guān)系和決定它是否要執(zhí)行。我們只有通過(guò)顯示地指明這個(gè)“目標(biāo)”才能讓其生效。當(dāng)然,“偽目標(biāo)”的取名不能和文件名重名,不然其就失去了“偽目標(biāo)”的意義了。

當(dāng)然,為了避免和文件重名的這種情況,我們可以使用一個(gè)特殊的標(biāo)記“.PHONY”來(lái)顯示地指明一個(gè)目標(biāo)是“偽目標(biāo)”,向make說(shuō)明,不管是否有這個(gè)文件,這個(gè)目標(biāo)就是“偽目標(biāo)”。

.PHONY : clean

只要有這個(gè)聲明,不管是否有“clean”文件,要運(yùn)行“clean”這個(gè)目標(biāo),只有“make clean”這樣。于是整個(gè)過(guò)程可以這樣寫(xiě):

.PHONY: clean
clean:
rm *.o temp

偽目標(biāo)一般沒(méi)有依賴的文件。但是,我們也可以為偽目標(biāo)指定所依賴的文件。偽目標(biāo)同樣可以作為“默認(rèn)目標(biāo)”,只要將其放在第一個(gè)。一個(gè)示例就是,如果你的Makefile需要一口氣生成若干個(gè)可執(zhí)行文件,但你只想簡(jiǎn)單地敲一個(gè)make完事,并且,所有的目標(biāo)文件都寫(xiě)在一個(gè)Makefile中,那么你可以使用“偽目標(biāo)”這個(gè)特性:

all : prog1 prog2 prog3
.PHONY : all

prog1 : prog1.o utils.o
cc -o prog1 prog1.o utils.o

prog2 : prog2.o
cc -o prog2 prog2.o

prog3 : prog3.o sort.o utils.o
cc -o prog3 prog3.o sort.o utils.o

我們知道,Makefile中的第一個(gè)目標(biāo)會(huì)被作為其默認(rèn)目標(biāo)。我們聲明了一個(gè)“all”的偽目標(biāo),其依賴于其它三個(gè)目標(biāo)。由于偽目標(biāo)的特性是,總是被執(zhí)行的,所以其依賴的那三個(gè)目標(biāo)就總是不如“all”這個(gè)目標(biāo)新。所以,其它三個(gè)目標(biāo)的規(guī)則總是會(huì)被決議。也就達(dá)到了我們一口氣生成多個(gè)目標(biāo)的目的?!?PHONY : all”聲明了“all”這個(gè)目標(biāo)為“偽目標(biāo)”。

隨便提一句,從上面的例子我們可以看出,目標(biāo)也可以成為依賴。所以,偽目標(biāo)同樣也可成為依賴??聪旅娴睦樱?
.PHONY: cleanall cleanobj cleandiff

cleanall : cleanobj cleandiff
rm program

cleanobj :
rm *.o

cleandiff :
rm *.diff

“make clean”將清除所有要被清除的文件?!癱leanobj”和“cleandiff”這兩個(gè)偽目標(biāo)有點(diǎn)像“子程序”的意思。我們可以輸入“make cleanall”和“make cleanobj”和“make cleandiff”命令來(lái)達(dá)到清除不同種類文件的目的。

六、多目標(biāo)

Makefile的規(guī)則中的目標(biāo)可以不止一個(gè),其支持多目標(biāo),有可能我們的多個(gè)目標(biāo)同時(shí)依賴于一個(gè)文件,并且其生成的命令大體類似。于是我們就能把其合并起來(lái)。當(dāng)然,多個(gè)目標(biāo)的生成規(guī)則的執(zhí)行命令是同一個(gè),這可能會(huì)可我們帶來(lái)麻煩,不過(guò)好在我們的可以使用一個(gè)自動(dòng)化變量“$@”(關(guān)于自動(dòng)化變量,將在后面講述),這個(gè)變量表示著目前規(guī)則中所有的目標(biāo)的集合,這樣說(shuō)可能很抽象,還是看一個(gè)例子吧。

bigoutput littleoutput : text.g
generate text.g -$(subst output,,$@) > $@

上述規(guī)則等價(jià)于:

bigoutput : text.g
generate text.g -big > bigoutput
littleoutput : text.g
generate text.g -little > littleoutput

其中,-$(subst output,,$@)中的“$”表示執(zhí)行一個(gè)Makefile的函數(shù),函數(shù)名為subst,后面的為參數(shù)。關(guān)于函數(shù),將在后面講述。這里的這個(gè)函數(shù)是截取字符串的意思,“$@”表示目標(biāo)的集合,就像一個(gè)數(shù)組,“$@”依次取出目標(biāo),并執(zhí)于命令。


七、靜態(tài)模式

靜態(tài)模式可以更加容易地定義多目標(biāo)的規(guī)則,可以讓我們的規(guī)則變得更加的有彈性和靈活。我們還是先來(lái)看一下語(yǔ)法:

<targets ...>: <target-pattern>: <prereq-patterns ...>
<commands>
...


targets定義了一系列的目標(biāo)文件,可以有通配符。是目標(biāo)的一個(gè)集合。

target-parrtern是指明了targets的模式,也就是的目標(biāo)集模式。

prereq-parrterns是目標(biāo)的依賴模式,它對(duì)target-parrtern形成的模式再進(jìn)行一次依賴目標(biāo)的定義。

這樣描述這三個(gè)東西,可能還是沒(méi)有說(shuō)清楚,還是舉個(gè)例子來(lái)說(shuō)明一下吧。如果我們的<target-parrtern>定義成“%.o”,意思是我們的<target>集合中都是以“.o”結(jié)尾的,而如果我們的<prereq-parrterns>定義成“%.c”,意思是對(duì)<target-parrtern>所形成的目標(biāo)集進(jìn)行二次定義,其計(jì)算方法是,取<target-parrtern>模式中的“%”(也就是去掉了[.o]這個(gè)結(jié)尾),并為其加上[.c]這個(gè)結(jié)尾,形成的新集合。

所以,我們的“目標(biāo)模式”或是“依賴模式”中都應(yīng)該有“%”這個(gè)字符,如果你的文件名中有“%”那么你可以使用反斜杠“\”進(jìn)行轉(zhuǎn)義,來(lái)標(biāo)明真實(shí)的“%”字符。

看一個(gè)例子:

objects = foo.o bar.o

all: $(objects)

$(objects): %.o: %.c
$(CC) -c $(CFLAGS) $< -o $@


上面的例子中,指明了我們的目標(biāo)從$object中獲取,“%.o”表明要所有以“.o”結(jié)尾的目標(biāo),也就是“foo.o bar.o”,也就是變量$object集合的模式,而依賴模式“%.c”則取模式“%.o”的“%”,也就是“foo bar”,并為其加下“.c”的后綴,于是,我們的依賴目標(biāo)就是“foo.c bar.c”。而命令中的“$<”和“$@”則是自動(dòng)化變量,“$<”表示所有的依賴目標(biāo)集(也就是“foo.c bar.c”),“$@”表示目標(biāo)集(也就是“foo.o bar.o”)。于是,上面的規(guī)則展開(kāi)后等價(jià)于下面的規(guī)則:

foo.o : foo.c
$(CC) -c $(CFLAGS) foo.c -o foo.o
bar.o : bar.c
$(CC) -c $(CFLAGS) bar.c -o bar.o

試想,如果我們的“%.o”有幾百個(gè),那種我們只要用這種很簡(jiǎn)單的“靜態(tài)模式規(guī)則”就可以寫(xiě)完一堆規(guī)則,實(shí)在是太有效率了?!办o態(tài)模式規(guī)則”的用法很靈活,如果用得好,那會(huì)一個(gè)很強(qiáng)大的功能。再看一個(gè)例子:


files = foo.elc bar.o lose.o

$(filter %.o,$(files)): %.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
$(filter %.elc,$(files)): %.elc: %.el
emacs -f batch-byte-compile $<


$(filter %.o,$(files))表示調(diào)用Makefile的filter函數(shù),過(guò)濾“$filter”集,只要其中模式為“%.o”的內(nèi)容。其的它內(nèi)容,我就不用多說(shuō)了吧。這個(gè)例字展示了Makefile中更大的彈性。


八、自動(dòng)生成依賴性

在Makefile中,我們的依賴關(guān)系可能會(huì)需要包含一系列的頭文件,比如,如果我們的main.c中有一句“#include "defs.h"”,那么我們的依賴關(guān)系應(yīng)該是:

main.o : main.c defs.h

但是,如果是一個(gè)比較大型的工程,你必需清楚哪些C文件包含了哪些頭文件,并且,你在加入或刪除頭文件時(shí),也需要小心地修改Makefile,這是一個(gè)很沒(méi)有維護(hù)性的工作。為了避免這種繁重而又容易出錯(cuò)的事情,我們可以使用C/C++編譯的一個(gè)功能。大多數(shù)的C/C++編譯器都支持一個(gè)“-M”的選項(xiàng),即自動(dòng)找尋源文件中包含的頭文件,并生成一個(gè)依賴關(guān)系。例如,如果我們執(zhí)行下面的命令:

cc -M main.c

其輸出是:

main.o : main.c defs.h

于是由編譯器自動(dòng)生成的依賴關(guān)系,這樣一來(lái),你就不必再手動(dòng)書(shū)寫(xiě)若干文件的依賴關(guān)系,而由編譯器自動(dòng)生成了。需要提醒一句的是,如果你使用GNU的C/C++編譯器,你得用“-MM”參數(shù),不然,“-M”參數(shù)會(huì)把一些標(biāo)準(zhǔn)庫(kù)的頭文件也包含進(jìn)來(lái)。

gcc -M main.c的輸出是:

main.o: main.c defs.h /usr/include/stdio.h /usr/include/features.h \
/usr/include/sys/cdefs.h /usr/include/gnu/stubs.h \
/usr/lib/gcc-lib/i486-suse-linux/2.95.3/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/pthreadtypes.h \
/usr/include/bits/sched.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/bits/wchar.h /usr/include/gconv.h \
/usr/lib/gcc-lib/i486-suse-linux/2.95.3/include/stdarg.h \
/usr/include/bits/stdio_lim.h


gcc -MM main.c的輸出則是:

main.o: main.c defs.h

那么,編譯器的這個(gè)功能如何與我們的Makefile聯(lián)系在一起呢。因?yàn)檫@樣一來(lái),我們的Makefile也要根據(jù)這些源文件重新生成,讓Makefile自已依賴于源文件?這個(gè)功能并不現(xiàn)實(shí),不過(guò)我們可以有其它手段來(lái)迂回地實(shí)現(xiàn)這一功能。GNU組織建議把編譯器為每一個(gè)源文件的自動(dòng)生成的依賴關(guān)系放到一個(gè)文件中,為每一個(gè)“name.c”的文件都生成一個(gè)“name.d”的Makefile文件,[.d]文件中就存放對(duì)應(yīng)[.c]文件的依賴關(guān)系。

于是,我們可以寫(xiě)出[.c]文件和[.d]文件的依賴關(guān)系,并讓make自動(dòng)更新或自成[.d]文件,并把其包含在我們的主Makefile中,這樣,我們就可以自動(dòng)化地生成每個(gè)文件的依賴關(guān)系了。

這里,我們給出了一個(gè)模式規(guī)則來(lái)產(chǎn)生[.d]文件:

%.d: %.c
@set -e; rm -f $@; \
$(CC) -M $(CPPFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$


這個(gè)規(guī)則的意思是,所有的[.d]文件依賴于[.c]文件,“rm -f $@”的意思是刪除所有的目標(biāo),也就是[.d]文件,第二行的意思是,為每個(gè)依賴文件“$<”,也就是[.c]文件生成依賴文件,“$@”表示模式“%.d”文件,如果有一個(gè)C文件是name.c,那么“%”就是“name”,“$$$$”意為一個(gè)隨機(jī)編號(hào),第二行生成的文件有可能是“name.d.12345”,第三行使用sed命令做了一個(gè)替換,關(guān)于sed命令的用法請(qǐng)參看相關(guān)的使用文檔。第四行就是刪除臨時(shí)文件。

總而言之,這個(gè)模式要做的事就是在編譯器生成的依賴關(guān)系中加入[.d]文件的依賴,即把依賴關(guān)系:

main.o : main.c defs.h

轉(zhuǎn)成:

main.o main.d : main.c defs.h

于是,我們的[.d]文件也會(huì)自動(dòng)更新了,并會(huì)自動(dòng)生成了,當(dāng)然,你還可以在這個(gè)[.d]文件中加入的不只是依賴關(guān)系,包括生成的命令也可一并加入,讓每個(gè)[.d]文件都包含一個(gè)完賴的規(guī)則。一旦我們完成這個(gè)工作,接下來(lái),我們就要把這些自動(dòng)生成的規(guī)則放進(jìn)我們的主Makefile中。我們可以使用Makefile的“include”命令,來(lái)引入別的Makefile文件(前面講過(guò)),例如:

sources = foo.c bar.c

include $(sources:.c=.d)

上述語(yǔ)句中的“$(sources:.c=.d)”中的“.c=.d”的意思是做一個(gè)替換,把變量$(sources)所有[.c]的字串都替換成[.d],關(guān)于這個(gè)“替換”的內(nèi)容,在后面我會(huì)有更為詳細(xì)的講述。當(dāng)然,你得注意次序,因?yàn)閕nclude是按次來(lái)載入文件,最先載入的[.d]文件中的目標(biāo)會(huì)成為默認(rèn)目標(biāo)。
書(shū)寫(xiě)命令
————

每條規(guī)則中的命令和操作系統(tǒng)Shell的命令行是一致的。make會(huì)一按順序一條一條的執(zhí)行命令,每條命令的開(kāi)頭必須以[Tab]鍵開(kāi)頭,除非,命令是緊跟在依賴規(guī)則后面的分號(hào)后的。在命令行之間中的空格或是空行會(huì)被忽略,但是如果該空格或空行是以Tab鍵開(kāi)頭的,那么make會(huì)認(rèn)為其是一個(gè)空命令。

我們?cè)赨NIX下可能會(huì)使用不同的Shell,但是make的命令默認(rèn)是被“/bin/sh”——UNIX的標(biāo)準(zhǔn)Shell解釋執(zhí)行的。除非你特別指定一個(gè)其它的Shell。Makefile中,“#”是注釋符,很像C/C++中的“//”,其后的本行字符都被注釋。

一、顯示命令

通常,make會(huì)把其要執(zhí)行的命令行在命令執(zhí)行前輸出到屏幕上。當(dāng)我們用“@”字符在命令行前,那么,這個(gè)命令將不被make顯示出來(lái),最具代表性的例子是,我們用這個(gè)功能來(lái)像屏幕顯示一些信息。如:

@echo 正在編譯XXX模塊......

當(dāng)make執(zhí)行時(shí),會(huì)輸出“正在編譯XXX模塊......”字串,但不會(huì)輸出命令,如果沒(méi)有“@”,那么,make將輸出:

echo 正在編譯XXX模塊......
正在編譯XXX模塊......

如果make執(zhí)行時(shí),帶入make參數(shù)“-n”或“--just-print”,那么其只是顯示命令,但不會(huì)執(zhí)行命令,這個(gè)功能很有利于我們調(diào)試我們的Makefile,看看我們書(shū)寫(xiě)的命令是執(zhí)行起來(lái)是什么樣子的或是什么順序的。

而make參數(shù)“-s”或“--slient”則是全面禁止命令的顯示。



二、命令執(zhí)行

當(dāng)依賴目標(biāo)新于目標(biāo)時(shí),也就是當(dāng)規(guī)則的目標(biāo)需要被更新時(shí),make會(huì)一條一條的執(zhí)行其后的命令。需要注意的是,如果你要讓上一條命令的結(jié)果應(yīng)用在下一條命令時(shí),你應(yīng)該使用分號(hào)分隔這兩條命令。比如你的第一條命令是cd命令,你希望第二條命令得在cd之后的基礎(chǔ)上運(yùn)行,那么你就不能把這兩條命令寫(xiě)在兩行上,而應(yīng)該把這兩條命令寫(xiě)在一行上,用分號(hào)分隔。如:

示例一:
exec:
cd /home/hchen
pwd

示例二:
exec:
cd /home/hchen; pwd

當(dāng)我們執(zhí)行“make exec”時(shí),第一個(gè)例子中的cd沒(méi)有作用,pwd會(huì)打印出當(dāng)前的Makefile目錄,而第二個(gè)例子中,cd就起作用了,pwd會(huì)打印出“/home/hchen”。

make一般是使用環(huán)境變量SHELL中所定義的系統(tǒng)Shell來(lái)執(zhí)行命令,默認(rèn)情況下使用UNIX的標(biāo)準(zhǔn)Shell——/bin/sh來(lái)執(zhí)行命令。但在MS-DOS下有點(diǎn)特殊,因?yàn)镸S-DOS下沒(méi)有SHELL環(huán)境變量,當(dāng)然你也可以指定。如果你指定了UNIX風(fēng)格的目錄形式,首先,make會(huì)在SHELL所指定的路徑中找尋命令解釋器,如果找不到,其會(huì)在當(dāng)前盤(pán)符中的當(dāng)前目錄中尋找,如果再找不到,其會(huì)在PATH環(huán)境變量中所定義的所有路徑中尋找。MS-DOS中,如果你定義的命令解釋器沒(méi)有找到,其會(huì)給你的命令解釋器加上諸如“.exe”、“.com”、“.bat”、“.sh”等后綴。



?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线观看不卡| 91精品免费在线观看| 亚洲精品自拍动漫在线| 欧美日本视频在线| 国产黄人亚洲片| 日本一区二区综合亚洲| 91免费版在线看| 日韩精彩视频在线观看| 国产日产欧产精品推荐色| 欧美日韩在线免费视频| 国产酒店精品激情| 天天色天天操综合| 国产精品久久三| 777午夜精品视频在线播放| 国产成人亚洲综合a∨婷婷 | 免费在线成人网| 国产精品人妖ts系列视频| 91麻豆精品国产自产在线观看一区| 国模一区二区三区白浆| 亚洲国产中文字幕在线视频综合 | 免费成人在线播放| 中文字幕佐山爱一区二区免费| 欧美一区二区免费| 色欧美片视频在线观看在线视频| 激情五月播播久久久精品| 亚洲一区二区三区精品在线| 国产欧美日韩在线| 精品理论电影在线| 欧美丰满一区二区免费视频| eeuss鲁一区二区三区| 奇米色一区二区| 亚洲国产日产av| 中文字幕一区在线观看视频| 久久青草国产手机看片福利盒子| 欧美高清视频www夜色资源网| 91丨九色丨黑人外教| 国产精品一级在线| 久久激情五月激情| 天天综合天天做天天综合| 国产精品久久久久影院色老大 | 成人精品视频一区| 国产综合色在线视频区| 视频在线观看91| 亚洲免费观看高清完整版在线观看 | 一区二区三区在线看| 国产欧美一区在线| 久久中文娱乐网| 日韩欧美国产综合在线一区二区三区| 欧美三级视频在线播放| 在线看国产一区| 高清不卡在线观看av| 麻豆传媒一区二区三区| 日韩av电影天堂| 午夜精品123| 视频一区在线播放| 国产人久久人人人人爽| 26uuu欧美| 欧美精品色综合| 欧美老女人第四色| 欧美日韩国产经典色站一区二区三区| 91在线观看一区二区| 99久久免费视频.com| 成人深夜在线观看| 成人sese在线| 91丨九色丨尤物| 91久久一区二区| 欧美在线free| 色婷婷亚洲综合| 欧美日韩高清在线| 777久久久精品| 蜜桃视频一区二区| 国产精品69毛片高清亚洲| 国产 欧美在线| 粉嫩13p一区二区三区| 国产精品一区二区视频| 极品尤物av久久免费看| 国产成人av一区二区三区在线观看| 国产成人精品三级麻豆| 91麻豆精东视频| 欧美性三三影院| 欧美日产国产精品| 91精品国产色综合久久不卡电影| 欧美一级二级三级乱码| 久久综合国产精品| 亚洲人妖av一区二区| 亚洲一区免费在线观看| 青青草成人在线观看| 奇米一区二区三区| 成人动漫在线一区| 欧美色手机在线观看| 日韩一区二区三区四区五区六区| 日本一区二区免费在线观看视频| 国产视频一区在线观看| 国产欧美视频一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 欧美aaa在线| 国产精品1区2区| 99re这里只有精品首页| 在线免费不卡视频| 精品88久久久久88久久久 | 国产午夜精品理论片a级大结局| 国产精品麻豆久久久| 亚洲自拍欧美精品| 日韩综合小视频| 99久久久免费精品国产一区二区 | 美女看a上一区| 欧美不卡一区二区三区| 国产精品短视频| 免播放器亚洲一区| 色偷偷久久一区二区三区| 91精品国产美女浴室洗澡无遮挡| 国产精品三级av在线播放| 日产欧产美韩系列久久99| 精品视频一区二区不卡| 亚洲视频在线观看三级| 国产午夜精品一区二区三区嫩草| 久久久综合视频| 亚洲国产精品自拍| 成人性生交大片免费看视频在线| 欧美放荡的少妇| 亚洲三级久久久| 日本午夜精品视频在线观看| 一本色道**综合亚洲精品蜜桃冫| 欧美成人在线直播| 洋洋成人永久网站入口| 国产91丝袜在线18| 91精品国产麻豆国产自产在线| 亚洲人成网站色在线观看| 国产91精品欧美| 884aa四虎影成人精品一区| 欧美精品一区二区三区久久久 | 成人国产亚洲欧美成人综合网| 欧美优质美女网站| 国产精品天美传媒| 国产精品影视在线观看| 欧美一区二区三区日韩视频| 午夜精品久久久久久久久| 欧美日韩成人一区二区| 日韩中文字幕区一区有砖一区 | 亚洲国产岛国毛片在线| 91美女在线看| 国产色产综合产在线视频| 日韩欧美一区在线观看| 一区二区成人在线视频| 成人av免费在线播放| 国产区在线观看成人精品| 久久99精品一区二区三区三区| 欧美日韩国产电影| 爽爽淫人综合网网站| 99久久精品99国产精品| 亚洲日本va在线观看| 99精品久久久久久| 亚洲欧美精品午睡沙发| 99视频超级精品| 国产精品毛片久久久久久久| www.日韩在线| 中文字幕一区在线| 99精品热视频| 亚洲精品v日韩精品| 日本国产一区二区| 亚洲一区二区三区视频在线| 欧美性一级生活| 日韩国产欧美视频| 日韩一级完整毛片| 成人深夜福利app| 亚洲综合色视频| 精品国产露脸精彩对白| 国产精品77777| 国产农村妇女毛片精品久久麻豆 | 亚洲电影你懂得| 欧美美女一区二区在线观看| 五月激情综合网| 欧美大尺度电影在线| 国产成人午夜99999| 国产精品福利电影一区二区三区四区| 97精品久久久午夜一区二区三区| 一色桃子久久精品亚洲| 99国产一区二区三精品乱码| 一个色妞综合视频在线观看| 欧美久久久一区| 韩国欧美国产一区| 国产精品家庭影院| 精品视频1区2区| 黄色日韩网站视频| 日韩精品一区二区三区视频在线观看| 国产 日韩 欧美大片| 亚洲一区影音先锋| 精品国产免费人成电影在线观看四季 | 国产日韩欧美一区二区三区乱码| 国产美女娇喘av呻吟久久| 亚洲你懂的在线视频| 欧美另类高清zo欧美| 国产 欧美在线| 天堂午夜影视日韩欧美一区二区| 亚洲精品一区二区三区福利| 色婷婷狠狠综合| 看电视剧不卡顿的网站| 最新欧美精品一区二区三区| 在线不卡一区二区| 91丨porny丨中文|