午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁(yè) > 知識(shí)庫(kù) > Linux下如何用GCC編譯動(dòng)態(tài)庫(kù)

Linux下如何用GCC編譯動(dòng)態(tài)庫(kù)

熱門(mén)標(biāo)簽:為什么地圖標(biāo)注后不顯示 好操作的電話機(jī)器人 谷歌美發(fā)店地圖標(biāo)注入駐 大連遼寧電銷機(jī)器人 400電話辦理 誠(chéng)薦翰諾科技 地圖標(biāo)注機(jī)位 電話機(jī)器人客戶對(duì)話 地圖標(biāo)注路線軟件 了不起的修仙模擬器地圖標(biāo)注
本文主要解決以下幾個(gè)問(wèn)題
  1 為什么要使用庫(kù)?
  2 庫(kù)的分類
  3 創(chuàng)建自己的庫(kù)
  或許大家對(duì)自己初學(xué) Linux時(shí)的情形仍記憶尤新吧。如果沒(méi)有一個(gè)能較好的解決依賴關(guān)系的包管理器,在Linux下安裝軟件將是一件及其痛苦的工作。你裝a包時(shí),可能會(huì)提示你要先裝b包,當(dāng)你費(fèi)盡心力找到b包時(shí),可能又會(huì)提示你要先安裝c包。我就曾被這樣的事搞的焦頭爛額,至今一提起rpm仍心有余悸,頭皮發(fā)麻。說(shuō)是一朝被蛇咬,十年怕井繩怕也不為過(guò)。
  Linux下之所以有這許多的依賴關(guān)系,其中一個(gè)開(kāi)發(fā)原則真是功不可沒(méi)。這個(gè)原則就是:盡量不重復(fù)做別人已經(jīng)做過(guò)的事。換句話說(shuō)就是盡量充分利用別人的勞動(dòng)成果。
  這就涉及到如何有效的進(jìn)行代碼復(fù)用。
  1 為什么要使用庫(kù)?
  關(guān)于代碼復(fù)用的途徑,一般有兩種。
  粘貼復(fù)制
  這是最沒(méi)有技術(shù)含量的一種方案。如果代碼小,則工作量還可以忍受,如果代碼很龐大,則此法不可取。即便有人原意這樣做,但誰(shuí)又能保證所有的代碼都可得到呢?
  而庫(kù)的出現(xiàn)很好的解決了這個(gè)問(wèn)題。
  庫(kù),是一種封裝機(jī)制,簡(jiǎn)單說(shuō)把所有的源代碼編譯成目標(biāo)代碼后打成的包。
  那么用戶怎么能知道這個(gè)庫(kù)提供什么樣的接口呢?難道要用nm等工具逐個(gè)掃描?
  不用擔(dān)心,庫(kù)的開(kāi)發(fā)者早以把一切都做好了。除了包含目標(biāo)代碼的庫(kù)外,www.Linuxidc.com一般還會(huì)提供一系列的頭文件,頭文件中就包含了庫(kù)的接口。為了讓方便用戶,再加上一個(gè)使用說(shuō)明就差不多完美了。
  2 庫(kù)的分類
  2.1 庫(kù)的分類
  根據(jù)鏈接時(shí)期的不同,庫(kù)又有靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)之分。
  靜態(tài)庫(kù)是在鏈接階段被鏈接的(好像是廢話,但事實(shí)就是這樣),所以生成的可執(zhí)行文件就不受庫(kù)的影響了,即使庫(kù)被刪除了,程序依然可以成功運(yùn)行。
  有別于靜態(tài)庫(kù),動(dòng)態(tài)庫(kù)的鏈接是在程序執(zhí)行的時(shí)候被鏈接的。所以,即使程序編譯完,庫(kù)仍須保留在系統(tǒng)上,以供程序運(yùn)行時(shí)調(diào)用。(TODO:鏈接動(dòng)態(tài)庫(kù)時(shí)鏈接階段到底做了什么)
  2.2 靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)的比較
  鏈接靜態(tài)庫(kù)其實(shí)從某種意義上來(lái)說(shuō)也是一種粘貼復(fù)制,只不過(guò)它操作的對(duì)象是目標(biāo)代碼而不是源碼而已。因?yàn)殪o態(tài)庫(kù)被鏈接后庫(kù)就直接嵌入可執(zhí)行文件中了,這樣就帶來(lái)了兩個(gè)問(wèn)題。
  首先就是系統(tǒng)空間被浪費(fèi)了。這是顯而易見(jiàn)的,想象一下,如果多個(gè)程序鏈接了同一個(gè)庫(kù),則每一個(gè)生成的可執(zhí)行文件就都會(huì)有一個(gè)庫(kù)的副本,必然會(huì)浪費(fèi)系統(tǒng)空間。
  再者,人非圣賢,即使是精心調(diào)試的庫(kù),也難免會(huì)有錯(cuò)。一旦發(fā)現(xiàn)了庫(kù)中有bug,挽救起來(lái)就比較麻煩了。必須一一把鏈接該庫(kù)的程序找出來(lái),然后重新編譯。
  而動(dòng)態(tài)庫(kù)的出現(xiàn)正彌補(bǔ)了靜態(tài)庫(kù)的以上弊端。因?yàn)閯?dòng)態(tài)庫(kù)是在程序運(yùn)行時(shí)被鏈接的,所以磁盤(pán)上只須保留一份副本,因此節(jié)約了磁盤(pán)空間。如果發(fā)現(xiàn)了bug或要升級(jí)也很簡(jiǎn)單,只要用新的庫(kù)把原來(lái)的替換掉就行了。
  那么,是不是靜態(tài)庫(kù)就一無(wú)是處了呢?
  答曰:非也非也。不是有句話么:存在即是合理。靜態(tài)庫(kù)既然沒(méi)有湮沒(méi)在滔滔的歷史長(zhǎng)河中,就必然有它的用武之地。想象一下這樣的情況:如果你用libpcap庫(kù)編了一個(gè)程序,要給被人運(yùn)行,而他的系統(tǒng)上沒(méi)有裝pcap庫(kù),該怎么解決呢?最簡(jiǎn)單的辦法就是編譯該程序時(shí)把所有要鏈接的庫(kù)都鏈接它們的靜態(tài)庫(kù),這樣,就可以在別人的系統(tǒng)上直接運(yùn)行該程序了。
  所謂有得必有失,正因?yàn)閯?dòng)態(tài)庫(kù)在程序運(yùn)行時(shí)被鏈接,故程序的運(yùn)行速度和鏈接靜態(tài)庫(kù)的版本相比必然會(huì)打折扣。然而瑕不掩瑜,動(dòng)態(tài)庫(kù)的不足相對(duì)于它帶來(lái)的好處在現(xiàn)今硬件下簡(jiǎn)直是微不足道的,所以鏈接程序在鏈接時(shí)一般是優(yōu)先鏈接動(dòng)態(tài)庫(kù)的,除非用-static參數(shù)指定鏈接靜態(tài)庫(kù)。
  2.3 如何判斷一個(gè)程序有沒(méi)有鏈接動(dòng)態(tài)庫(kù)?
  答案是用file實(shí)用程序。
  file程序是用來(lái)判斷文件類型的,在file命令下,所有文件都會(huì)原形畢露的。
  順便說(shuō)一個(gè)技巧。有時(shí)在 windows下用瀏覽器下載tar.gz或tar.bz2文件,后綴名會(huì)變成奇怪的tar.tar,到Linux有些新手就不知怎么解壓了。但 Linux下的文件類型并不受文件后綴名的影響,所以我們可以先用命令file xxx.tar.tar看一下文件類型,然后用tar加適當(dāng)?shù)膮?shù)解壓。
  另外,還可以借助程序ldd實(shí)用程序來(lái)判斷。
  ldd是用來(lái)打印目標(biāo)程序(由命令行參數(shù)指定)所鏈接的所有動(dòng)態(tài)庫(kù)的信息的,如果目標(biāo)程序沒(méi)有鏈接動(dòng)態(tài)庫(kù),則打印“not a dynamic executable”,ldd的用法請(qǐng)參考manpage。
  3 創(chuàng)建自己的庫(kù)
  3.1 創(chuàng)建動(dòng)態(tài)庫(kù)
  創(chuàng)建文件hello.c,內(nèi)容如下:
  #include
  void hello(void)
  {
  printf("Hello World\n");
  }
  用命令gcc -shared hello.c -o libhello.so編譯為動(dòng)態(tài)庫(kù)。可以看到,當(dāng)前目錄下多了一個(gè)文件libhello.so。
  [leo@leo test]$ file libhello.so
  libhello.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
  看到了吧,文件類型是shared object了。
  再編輯一個(gè)測(cè)試文件test.c,內(nèi)容如下:
  int
  main()
  {
  hello();
  return 0;
  }
  這下可以編譯了:)
  [leo@leo test]$ gcc test.c
  /tmp/ccm7w6Mn.o: In function `main':
  test.c:(.text+0x1d): undefined reference to `hello'
  collect2: ld returned 1 exit status
  鏈接時(shí)gcc找不到hello函數(shù),編譯失敗:(。原因是hello在我們自己創(chuàng)建的庫(kù)中,如果gcc能找到那才教見(jiàn)鬼呢!ok,再接再厲。
  [leo@leo test]$ gcc test.c -lhello
  /usr/lib/gcc/i686-pc-Linux-gnu/4.0.0/../../../../i686-pc-Linux-gnu/bin/ld: cannot find -lhello
  collect2: ld returned 1 exit status
  [leo@leo test]$ gcc test.c -lhello -L.
  [leo@leo test]$
第一次編譯直接編譯,gcc默認(rèn)會(huì)鏈接標(biāo)準(zhǔn)c庫(kù),但符號(hào)名hello解析不出來(lái),故連接階段通不過(guò)了。
  現(xiàn)在用gcc test.c -lhello -L.已經(jīng)編譯成功了,默認(rèn)輸出為a.out。現(xiàn)在來(lái)試著運(yùn)行一下:
  [leo@leo test]$ ./a.out
  ./a.out: error while loading shared libraries: libhello.so: cannot open shared object file: No such file or directory
  咦,怎么回事?原來(lái)雖然鏈接時(shí)鏈接器(dynamic linker)找到了動(dòng)態(tài)庫(kù)libhello.so,但動(dòng)態(tài)加載器(dynamic loader, 一般是/lib/ld-Linux.so.2)卻沒(méi)找到。再來(lái)看看ldd的輸出:
  [leo@leo test]$ ldd a.out
  Linux-gate.so.1 => (0xffffe000)
  libhello.so => not found
  libc.so.6 => /lib/libc.so.6 (0x40034000)
  /lib/ld-Linux.so.2 (0x40000000)
  果然如此,看到?jīng)]有,libhello.so => not found。
  Linux為我們提供了兩種解決方法:
  1.可以把當(dāng)前路徑加入 /etc/ld.so.conf中然后運(yùn)行l(wèi)dconfig,或者以當(dāng)前路徑為參數(shù)運(yùn)行l(wèi)dconfig(要有root權(quán)限才行)。
  2.把當(dāng)前路徑加入環(huán)境變量LD_LIBRARY_PATH中
  當(dāng)然,如果你覺(jué)得不會(huì)引起混亂的話,可以直接把該庫(kù)拷入/lib,/usr/lib/等位置(無(wú)可避免,這樣做也要有權(quán)限),這樣鏈接器和加載器就都可以準(zhǔn)確的找到該庫(kù)了。
  我們采用第二種方法:
  [leo@leo test]$ export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
  [leo@leo test]$ ldd a.out
  Linux-gate.so.1 => (0xffffe000)
  libhello.so => ./libhello.so (0x4001f000)
  libc.so.6 => /lib/libc.so.6 (0x40036000)
  /lib/ld-Linux.so.2 (0x40000000)
  哈哈,這下ld-Linux.so.2就可以找到libhello.so這個(gè)庫(kù)了。
  現(xiàn)在可以直接運(yùn)行了:
  [leo@leo test]$ ./a.out
  Hello World
  3.2 創(chuàng)建靜態(tài)庫(kù)
  仍使用剛才的hello.c和test.c。
  第一步,生成目標(biāo)文件。
  [leo@leo test]$ gcc -c hello.c
  [leo@leo test]$ ls hello.o -l
  -rw-r--r-- 1 leo users 840 5月 6 12:48 hello.o
  第二步,把目標(biāo)文件歸檔。
  [leo@leo test]$ ar r libhello.a hello.o
  ar: creating libhello.a
  OK,libhello.a就是我們所創(chuàng)建的靜態(tài)庫(kù)了,簡(jiǎn)單吧:)
  [leo@leo test]$ file libhello.a
  libhello.a: current ar archive
  下面一行命令就是教你如何在程序中鏈接靜態(tài)庫(kù)的:
  [leo@leo test]$ gcc test.c -lhello -L. -static -o hello.static
  我們來(lái)用file命令比較一下用動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)鏈接的程序的區(qū)別:
  [leo@leo test]$ gcc test.c -lhello -L. -o hello.dynamic
  正如前面所說(shuō),鏈接器默認(rèn)會(huì)鏈接動(dòng)態(tài)庫(kù)(這里是libhello.so),所以只要把上個(gè)命令中的 -static參數(shù)去掉就可以了。
  用file實(shí)用程序驗(yàn)證一下是否按我們的要求生成了可執(zhí)行文件:
  [leo@leo test]$ file hello.static hello.dynamic
  hello.static: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.6, statically linked, not stripped
  hello.dynamic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.6, dynamically linked (uses shared libs), not stripped
  不妨順便練習(xí)一下ldd的用法:
  [leo@leo test]$ ldd hello.static hello.dynamic
  hello.static:
  not a dynamic executable
  hello.dynamic:
  Linux-gate.so.1 => (0xffffe000)
  libhello.so => ./libhello.so (0x4001f000)
  libc.so.6 => /lib/libc.so.6 (0x40034000)
  /lib/ld-Linux.so.2 (0x40000000)
  OK,看來(lái)沒(méi)有問(wèn)題,那就比較一下大小先:
  [leo@leo test]$ ls -l hello.[ds]*
  -rwxr-xr-x 1 leo users 5911 5月 6 12:54 hello.dynamic
  -rwxr-xr-x 1 leo users 628182 5月 6 12:54 hello.static
  看到區(qū)別了吧,鏈接靜態(tài)庫(kù)的目標(biāo)程序和鏈接動(dòng)態(tài)庫(kù)的程序比起來(lái)簡(jiǎn)直就是一個(gè)龐然大物!
  這么小的程序,很難看出執(zhí)行時(shí)間的差別,不過(guò)為了完整起見(jiàn),還是看一下time的輸出吧:
  [leo@leo test]$ time ./hello.static
  Hello World
  real 0m0.001s
  user 0m0.000s
  sys 0m0.001s
  [leo@leo test]$ time ./hello.dynamic
  Hello World
  real 0m0.001s
  user 0m0.000s
  sys 0m0.001s
  如果程序比較大的話,應(yīng)該效果會(huì)很明顯的。

標(biāo)簽:邵陽(yáng) 新鄉(xiāng) 沈陽(yáng) 東營(yíng) 云浮 法律服務(wù) 阜陽(yáng) 慶陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux下如何用GCC編譯動(dòng)態(tài)庫(kù)》,本文關(guān)鍵詞  Linux,下如,何用,GCC,編譯,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux下如何用GCC編譯動(dòng)態(tài)庫(kù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Linux下如何用GCC編譯動(dòng)態(tài)庫(kù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    精品国产aaa| 91久色国产| 亚洲日本无吗高清不卡| 人妻丰满熟妇aⅴ无码| 国产黄色高清视频| 伊人色综合久久天天| 久久精品精品电影网| 亚欧精品在线| 欧美又粗又大又长| av电影在线观看不卡| 91麻豆精品国产91久久久资源速度| 欧美激情视频一区二区三区不卡 | 不卡一区二区中文字幕| 日韩av在线免费| 亚洲欧美久久久久一区二区三区| 亚洲波多野结衣| 96av麻豆蜜桃一区二区| 亚洲欧美一区二区精品久久久| 免费看污久久久| 国产网站在线看| 亚洲蜜臀av乱码久久精品蜜桃| 久久精品中文字幕免费mv| 黄色一级大片免费| 一区二区三区午夜| 欧美电影一区二区三区| 鲁鲁视频www一区二区| 日本在线观看中文字幕| 一区二区三区日韩| 电影午夜精品一区二区三区| 69夜色精品国产69乱| 国产精品久久99| 久久久中精品2020中文| 做a视频在线观看| 精油按摩中文字幕久久| 在线电影av不卡网址| 无码精品a∨在线观看中文| 丰满人妻一区二区三区免费| 欧美一区二区三区男人的天堂| 黑人糟蹋人妻hd中文字幕| 欧美做受xxxxxⅹ性视频| 色呦呦国产精品| 黄色在线观看av| 久久久久国产精品人| 91精品久久久久久| 91丨九色丨海角社区| 在线电影av不卡网址| 一女二男3p波多野结衣| 国产不卡视频一区二区三区| 色综合五月天导航| 六十路息与子猛烈交尾| 亚洲va在线va天堂| 青青草原成人网| 国产成人自拍高清视频在线免费播放| 久久99久久99精品免观看粉嫩| av动漫在线观看| 日产国产欧美视频一区精品| 久久久久久一区二区三区 | 欧美在线视频一区| 一起操在线播放| 亚洲国产精品综合小说图片区| 欧美日韩一区二区三区在线视频 | 日本视频免费观看| 亚洲色图在线观看| 伊人久久久久久久久久久久久久| 色一情一伦一子一伦一区| 亚洲日本欧美在线| 国产精品18久久久久久久久| 日韩免费电影一区二区| 99久久婷婷国产一区二区三区| 在线观看成人黄色| 神马久久精品综合| 日韩精品欧美激情| 日韩视频中文字幕在线观看| 精品久久久久久久中文字幕| 国产精品区在线| 欧美日韩在线视频首页| 国产精品无码av在线播放| bt欧美亚洲午夜电影天堂| 在线国产99| 国产日韩欧美高清| 老司机午夜网站| 久久综合中文字幕| 国产成人精品视频免费看| 91丨九色丨蝌蚪丨老版| 91在线播放国产| 精品国产18久久久久久| 成人国产精品一区二区| 久久青草久久| av资源站久久亚洲| 国产99久久久久| 综合一区中文字幕| 91国内精品野花午夜精品| 女人十八毛片嫩草av| 久久久久久国产精品久久| 欧美日韩综合在线| 欧美亚洲国产成人精品| 91久久精品日日躁夜夜躁欧美| 欧美极品jizzhd欧美仙踪林| 亚洲人成77777在线观看网| 欧美一级淫片aaaaaa| eeuss中文| 欧美日产在线观看| 亚洲无码久久久久久久| 亚洲va久久久噜噜噜久久狠狠| 欧美伊人久久久久久午夜久久久久| 亚洲欧美综合另类| 欧美精品尤物在线| 欧美在线观看视频在线| 国产一卡二卡在线播放| 亚洲自拍偷拍福利| 一区二区三区精品| 国产五月天婷婷| 亚洲一区二区三区免费看| 欧美剧在线免费观看网站| 最近中文字幕免费在线观看| 97超碰人人爱| 日韩一区二区免费视频| 天堂中文资源在线观看| 精品这里只有精品| 欧美精品福利视频| 亚洲制服欧美中文字幕中文字幕| 国产污视频在线观看| 91黄色在线看| 亚洲女人天堂视频| 成人久久精品人妻一区二区三区| 免费特级黄色片| 亚洲欧美制服综合另类| 久热成人在线视频| 日韩国产欧美亚洲| 久热精品视频在线| 久久久不卡影院| 国产第100页| 可以在线看黄的网站| 欧美精品一区二区三区在线| 日韩精品视频网| www.男人天堂| 亚洲最大福利网站| 色综合久久88色综合天天6| 日韩 国产 在线| 午夜精品一区二区三区在线观看| 亚洲成成品网站| 国产乱色国产精品免费视频| 欧美一区二区三区成人精品| 成人黄动漫网站免费| 色综合久久久久综合体| 国产农村老头老太视频| 青青视频免费在线| 欧美丰满老妇厨房牲生活| 国产精品欧美一区二区三区| 伊人中文字幕在线观看| 六月丁香婷婷激情| 91久久精品视频| 精品国产免费久久| 久久一区二区三区四区| 国产精品21p| 蜜臀av免费观看| 成人日韩av在线| 日韩成人性视频| 99精品热视频| 在线观看国产区| 看看黄色一级片| 国产精品久久久久91| 在线播放日韩导航| 成人高清视频在线观看| 国产精品一区二区三区在线免费观看 | 亚洲成人综合网站| 快she精品国产999| 午夜久久久久久久| 国内少妇毛片视频| 国产精品你懂得| 欧美mv日韩mv亚洲| 国产精品超碰97尤物18| 日日摸夜夜添夜夜添国产精品 | 欧洲精品一区二区三区在线观看| 国产精品亚洲专一区二区三区| 少妇一级淫片日本| 午夜大片在线观看| 亚洲高清在线播放| caoporen国产精品| 国产精品免费一区| 最近中文字幕日韩精品| 欧美日韩aaaaaa| 中文字幕综合网| 国内精品久久久久影院色 | 女人被男人躁得好爽免费视频| 99久久99久久| 91精品国产高清久久久久久久久| 在线观看日韩视频| 日韩一区二区免费高清| 午夜在线电影亚洲一区| 99免费精品在线| 色欲av永久无码精品无码蜜桃| 国产精品视频免费播放| 97超碰在线资源| 2025中文字幕| 国产九九热视频| 国产性xxxx18免费观看视频| 中文字幕欧美人与畜| 国产精品日韩高清| 91亚洲va在线va天堂va国| 精品久久久久99| 日韩视频免费直播| 精品福利在线观看| 亚洲国产色一区| 久久这里有精品| 怡春院在线视频| 精品无码久久久久久久| 精国产品一区二区三区a片| 男人天堂资源网| 国产中年熟女高潮大集合| 亚洲欧美激情一区二区三区| 91在线第一页| 在线看黄色的网站| 污污污www精品国产网站| 国产国语老龄妇女a片| 人妻少妇偷人精品久久久任期| 中文字幕 欧美日韩| 亚洲成人手机在线观看| 手机看片一级片| 午夜理伦三级做爰电影| avove在线播放| 一区二区视频在线免费观看| 国产普通话bbwbbwbbw| 亚洲av无码乱码国产麻豆 | 国产偷国产偷亚洲清高网站| 精品国产123| 久久久久久久久久久国产| 免费91麻豆精品国产自产在线观看| 91国内精品久久| 国产欧美日韩精品在线观看| 精品一区二区日本| 成人精品视频在线播放| 天天干天天色天天干| 亚洲国产精品无码久久久久高潮| 欧美日韩黄色网| av一级黄色片| 国产精品一级黄| 亚洲主播在线播放| 日本黄色一区二区| 亚洲天堂视频在线观看| 日本成人免费在线| 欧美一卡2卡3卡4卡无卡免费观看水多多| 18黄暴禁片在线观看| 91精产国品一二三产区别沈先生| 一级黄色特级片| 欧美人妻一区二区三区| 艳妇乳肉豪妇荡乳av| 久久精品国产亚洲aⅴ | 视频一区二区三| 午夜影院免费观看视频| 小泽玛利亚一区二区免费| 天堂精品中文字幕在线| 国产女同互慰高潮91漫画| 欧美日韩一二三| 欧美日韩成人在线观看| 国产精品久久久对白| 国产成人精品无码播放| 久久久久久免费观看| 韩国三级中文字幕hd久久精品| 亚洲影视资源网| 欧美激情精品久久久久久久变态| 欧美一二三区在线| 国产精品免费视频久久久| 熟女少妇在线视频播放| 精品亚洲永久免费| 懂色一区二区三区免费观看| 在线视频中文字幕一区二区| 国产精品v日韩精品| 99视频在线免费| 中文字幕久久网| 亚洲影视在线播放| 91精品成人久久| 国产精品无码一本二本三本色| 日韩免费不卡视频| 成人爽a毛片一区二区免费| 亚洲成人av在线| 欧美不卡三区| 免费国产羞羞网站美图| 成人免费毛片高清视频| 亚洲国产成人久久综合| 一区在线电影| 日韩精品成人在线| 亚洲精品综合在线| 色妞色视频一区二区三区四区| 亚洲区一区二区三区| 国产大片中文字幕在线观看| 中文字幕精品三区| 久久精品亚洲94久久精品| 国产a级一级片| 亚洲免费成人在线| 欧美日韩国产精品自在自线| 国产区亚洲区欧美区| www.97视频| 亚洲精品高清在线| 91夜夜未满十八勿入爽爽影院| 99在线视频免费| 久久丝袜美腿综合| 青草青草久热精品视频在线网站 | 国产麻豆午夜三级精品| 欧美一区二区三区小说| 9l视频自拍9l视频自拍| 亚洲字幕av一区二区三区四区| 欧美欧美欧美欧美首页| 国产区一区二区三区| 亚洲成人福利视频| 99精品一区二区三区| 国模gogo一区二区大胆私拍 | 欧美国产在线一区| 国产精品99久久久精品无码| 国产乱叫456在线| 色94色欧美sute亚洲线路一ni | 性一交一乱一色一视频麻豆| 一区二区三区 在线观看视频 | 免费一级欧美片在线观看| 色天使久久综合网天天| 成人亲热视频网站| 精品一区二区视频在线观看| 福利电影一区二区三区| 欧美日韩成人黄色| 欧美国产在线一区| 成人午夜电影久久影院| 精品成人一区二区三区| 国产精品国产三级国产专区51| 这里只有精品9| 欧美成人一区二区三区| 青青草综合在线| 亚洲风情第一页| 在线观看欧美日韩国产| 宇都宫紫苑在线播放| av电影在线观看一区| 国产精品久久久久久久美男 | 中文字幕亚洲不卡| 精品视频一区二区| 五月婷婷激情网| 欧美精选在线播放| 国产一区二区三区精彩视频| 国产一区二区三区免费| 国产精品久久久久不卡| av图片在线观看| 亚洲第一网站免费视频| 国产成年人视频网站| 久久尤物电影视频在线观看| av日韩中文字幕| 99久久精品国产一区色| 色哟哟亚洲精品一区二区| 国产伦精品一区三区精东| 亚洲美女一区二区三区| 欧美大片免费播放| 国产成都精品91一区二区三| 国产欧美亚洲精品| 99久久夜色精品国产亚洲| 午夜欧美大片免费观看| 日韩精品国产一区二区| 亚洲国产高清自拍| 国产一级久久久久毛片精品| 色婷婷久久久久swag精品| www.精品在线| 色综合咪咪久久| 午夜激情av在线| 亚洲国产一区视频| mm1313亚洲国产精品无码试看| 一区二区三区91| 国产精品久久久久9999小说| 日韩毛片视频在线看| 国产黄色特级片| 精品福利在线观看| 女教师高潮黄又色视频| 欧美一区二区视频观看视频| 精品久久久中文字幕人妻| 亚洲欧美日韩在线一区| 国产精品18在线| 91精品国产综合久久久久| 手机看片国产精品| 日韩亚洲欧美在线| 人人艹在线视频| 久久精品国产久精国产一老狼| 九一国产在线观看| 国产成人jvid在线播放| 熟妇人妻系列aⅴ无码专区友真希| 亚洲影院色无极综合| 国产一区二区三区在线观看免费视频 | 亚洲视频在线二区| 国产精品理伦片| 在线观看国产一级片| 欧美一区二区在线视频| 免费一级肉体全黄毛片| 午夜精品久久久久久久99热浪潮| 人妻妺妺窝人体色www聚色窝| 国产日韩欧美精品| 国产精品电影院| 人妻丰满熟妇av无码久久洗澡 | 国产精品不卡在线| 国产女主播在线播放| 九九九久久久久久| 韩国av一区二区三区四区| 三上悠亚免费在线观看| 午夜国产精品影院在线观看| 久久人人爽人人人人片| 中文字幕日韩高清| 乱精品一区字幕二区| 国产欧美日韩小视频| 日韩欧美精品网址| 亚洲天堂最新地址| 国产精品久久久久不卡| 久久久99免费| 国产精品夜夜夜爽阿娇| 国产精品久久久久久五月尺| 极品少妇一区二区三区精品视频| 91pony九色| 国产成人精品电影久久久|