青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

runsisi

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  45 隨筆 :: 15 文章 :: 26 評論 :: 0 Trackbacks

php-gd擴展庫交叉編譯

runsisi AT hust
 @2012/10/05

為了給一做web的同事解決交叉編譯的問題,長假的第一天看了下,所以有了這個東東~

1. 編譯環境

OS: LinuxDeepin 12.06 (based on ubuntu 12.04) 32bit(以下的討論亦只限于GNU/Linux環境下)

HW: Intel Pentium processor T4300, DDRII 667 3GB

編譯器:arm-linux-gnueabi-gcc,理論上其他powerpc,mingw等GCC均可以

Src version:

Php: v5.4.7 zlib: v1.2.7 libpng: v1.5.12 libjpeg: v8d


2. 交叉編譯和本地編譯的區別

1)輸入

相同,同樣是那些源代碼,配置腳本

2)輸出

不同,交叉編譯的輸出一般為在其他cpu架構/系統上(更確切的說是具有不同ABI接口的系統上)運行或加載的可執行文件或庫,它的輸出一般情況下不能在交叉編譯器運行的平臺下運行或被加載

3)工具

不能簡單的說相同或者不同,對于編譯鏈接等用到的工具鏈肯定不同,例如在我的機器上裝了四個針對不同目標平臺的gcc編譯器:

①runsisi@runsisi-Aspire-4736Z:~/Desktop$ gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper

Target: i686-linux-gnu

②runsisi@runsisi-Aspire-4736Z:~/Desktop$ arm-linux-gnueabi-gcc -v

Using built-in specs.

COLLECT_GCC=arm-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabi/4.6/lto-wrapper

Target: arm-linux-gnueabi

③COLLECT_GCC=/opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/powerpc-linux-gcc

COLLECT_LTO_WRAPPER=/opt/eldk-5.2.1/powerpc/sysroots/i686-eldk-linux/usr/libexec/powerpc-linux/gcc/powerpc-linux/4.6.4/lto-wrapper

Target: powerpc-linux

④runsisi@runsisi-Aspire-4736Z:~/Desktop$ i686-w64-mingw32-gcc -v

Using built-in specs.

COLLECT_GCC=i686-w64-mingw32-gcc

COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-w64-mingw32/4.6/lto-wrapper

Target: i686-w64-mingw32

注意每一個打印的最后一行”Target“,表明該編譯器的輸出是針對該平臺的。

編譯用到的工具除了編譯工具鏈之外,還有configure腳本等(當然對于不是使用autotools進行源代碼發布的開源工程,本段就沒有討論的意義了),對于交叉編譯而言,configure腳本需要使用不同的參數進行調用,有兩個最重要的參數:1)指定交叉編譯器,可以在執行configure腳本之前執行export CC=arm-linux-gnueabi-gcc,或者像這樣:./configure CC=arm-linux-gnueabi-gcc作為configure腳本參數進行指定;2)由于交叉編譯出來的可執行文件在當前的平臺無法運行,所以另外一個參數是告訴configure腳本,我們當前是要進行交叉編譯,一些需要通過編譯測試程序然后運行測試程序才能得到編譯參數的操作就不要進行了,當然還有其他一些編譯參數可能針對不同的平臺有默認值,該指定交叉編譯目標平臺的參數以configure腳本參數的形式進行指定,如:./configure –-host=arm-linux,具體—host之后指定的目標平臺是arm-linux, powerpc-linux還是別的貌似不是太重要,只要不是當前編譯器所在平臺可以運行的平臺就可以了,但是我們還是針對自己需要的目標平臺指定為好

4)gcc默認搜索路徑

gcc編譯器在編譯和調用ld進行鏈接的時候會去默認路徑下搜索頭文件和庫文件,可以使用gcc的 -print-search-dirs參數打印當前的默認搜索路徑,如:

runsisi@runsisi-Aspire-4736Z:~/Desktop$ i686-w64-mingw32-gcc -print-search-dirs

install: /usr/lib/gcc/i686-w64-mingw32/4.6/

programs: =/usr/lib/gcc/i686-w64-mingw32/4.6/:/usr/lib/gcc/i686-w64-mingw32/4.6/:/usr/lib/gcc/i686-w64-mingw32/:/usr/lib/gcc/i686-w64-mingw32/4.6/:/usr/lib/gcc/i686-w64-mingw32/:/usr/lib/gcc/i686-w64-mingw32/4.6/../../../../i686-w64-mingw32/bin/i686-w64-mingw32/4.6/:/usr/lib/gcc/i686-w64-mingw32/4.6/../../../../i686-w64-mingw32/bin/

libraries: =/usr/lib/gcc/i686-w64-mingw32/4.6/:/usr/lib/gcc/i686-w64-mingw32/4.6/../../../../i686-w64-mingw32/lib/i686-w64-mingw32/4.6/:/usr/lib/gcc/i686-w64-mingw32/4.6/../../../../i686-w64-mingw32/lib/../lib/:/usr/lib/gcc/i686-w64-mingw32/4.6/../../../../i686-w64-mingw32/lib/

從打印可以看出,交叉編譯器并不會從當前系統目錄下搜索頭文件和庫,所以不需要擔心在交叉編譯器會搞混。注意:如果在CFLAGS中使用—sysroot指定root的位置的話,用戶自定義的-I,-L都會以--sysroot指定的root為root


3. gd擴展庫編譯方式

對于編譯gd擴展庫,存在兩種方法,下面分別說明:

1)直接和php集成,編譯進最終的php可執行文件中,在php v4.x.x版本之后php的源代碼里面就帶了gd擴展庫的源代碼(在源代碼樹ext/gd下面)(具體版本為多少不關心,我也不是搞php的,反正v5.x.x肯定是這樣的~),在執行./configure編譯php時帶上—with-gd的選項就表明將gd編譯進php,不過php官方說gd庫還依賴libpng和libjpeg,而libpng又依賴libz,所以在./configure的選項中必須同時指定這三個庫的位置,以下為我的編譯選項:

runsisi@runsisi-Aspire-4736Z:~/Desktop/php/php-5.4.7$ export CC=arm-linux-gnueabi-gcc

runsisi@runsisi-Aspire-4736Z:~/Desktop/php/php-5.4.7$./configure --prefix=/home/runsisi/target --with-gd --disable-libxml --disable-dom --with-zlib-dir=/home/runsisi/target --with-jpeg-dir=/home/runsisi/target --with-png-dir=/home/runsisi/target --host=arm-linux --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear –disable-phar

注意五個用特殊顏色標記出來了的部分,紫色部分指定交叉編譯器;粉紅色—prefix指定make install時php被安裝到的位置,這個非常重要,如果不指定,會安裝到系統默認的/usr/local下面,而我們交叉編譯的php在當前系統是根本無法執行的,這會把系統的php搞亂,所以一定要指定自己的安裝路徑;綠色的—with-gd表示我們要集成gd庫;深紅色的選項指定zlib,jpeg,png三個庫的位置,注意這三個庫也必須是使用交叉編譯器編譯出來的庫;藍色的—host表明我們現在在進行交叉編譯;其他選項不要問我,我只是為了在編譯時不出現找不到相應庫的錯誤所以屏蔽掉了那些擴展,具體這些擴展是做什么我也不懂~,最后一個–disable-phar選項簡單說下,如果不屏蔽掉,在make最后階段會出錯,解決方法是使用本機的php去打包(具體打包什么我也不知道,makefile里面用到了phar這個擴展功能),因為交叉編譯的php不可能運行,所以肯定會出錯,phar應該就是個和jar,rar類似的功能,屏蔽掉應該也沒什么問題。

2)既然gd庫只是個擴展,那么肯定可以單獨編譯,這應該就是網上所說的什么追加方式進行編譯。gd的官網都已經掛了,那么肯定直接使用php維護的gd進行編譯。

編譯的步驟如下:①切換到php源代碼目錄ext/gd下面,執行php安裝目錄下的phpize ②執行configure,make一系列操作,在ext/gd/modules目錄下就有gd.so存在了,如果在configure時指定prefix為php的安裝目錄,那么make install就會把gd的頭文件和gd.so都拷貝到php安裝目錄下去.

所有人都說在編譯之前需要執行phpize這個腳本,但是從來沒人說為什么,其實這個腳本做的就是得到一些宏定義,為擴展庫生成configure腳本等,注意要打開這個文件,對最開始兩行的prefix和datarootdir根據當前php實際所在的位置進行修改,比如我當初是把php make install安裝在/home/runsisi/target下面,但是后來我把它移到/home/runsisi/Desktop/php-target下面了,那就要做下面相應的修改:

orig:

prefix='/home/runsisi/target'

datarootdir='/home/runsisi/target/php'

modified:

prefix='/home/runsisi/Desktop/php-target'

datarootdir='/home/runsisi/Desktop/php-target/php'


4. 幾點討論

1)使用直接集成gd庫的方法時,zlib,png,jpeg庫可以是靜態庫,也可以是動態庫,但單獨編譯gd庫時zlib,png,jpeg必須全部是動態庫,因為此時gd被編譯成動態庫,具體原因我這點linker&loader的知識還不夠解釋:),但拿windows下生成庫的種類來看,可以知道具體鏈接什么庫是很很有講究的。。。

windows下vc生成庫時,一般有如下幾種選擇:

靜態庫/動態庫 Ⓧ debug版/release版 Ⓧ 靜態鏈接/動態鏈接C運行時庫

2)在php的Makefile中有一處宏定義CFLAGS_CLEAN硬編碼成了-I/usr/include -g -O2 -fvisibility=hidden,這個地方可能需要修改,其實把-I/usr/include這句去掉都無所謂;在EXTRA_LDFLAGS_PROGRAM后面要加上-ldl,不然會鏈接出錯

3)查看交叉編譯好的程序依賴什么庫,由于沒有現成的ldd,可以使用其他工具,如:

runsisi@runsisi-Aspire-4736Z:~/Desktop/target/bin$ arm-linux-gnueabi-readelf -d php | grep NEEDED

0x00000001 (NEEDED) Shared library: [libdl.so.2]

0x00000001 (NEEDED) Shared library: [libm.so.6]

0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]

0x00000001 (NEEDED) Shared library: [libc.so.6]

0x00000001 (NEEDED) Shared library: [ld-linux.so.3]

4)靜態庫的鏈接順序很重要,如果liba依賴libb,請以這樣指定鏈接順序:-la -lb

5)如果靜態庫的鏈接存在循環依賴問題,請使用ld的--start-group archives –end-group選項


5. 具體的編譯步驟,分上述的兩種方式進行

1)集成進php的方式(默認都動態鏈接zlib,png,jpeg等庫,如果目錄下同時存在靜態庫和動態庫,gcc會默認選擇靜態庫進行鏈接)(假設php,libz,libpng,libjpeg的源代碼壓縮包都在同一個目錄下)

首先設置交叉編譯器(以arm gcc為例)

$ export CC=arm-linux-gnueabi-gcc

①編譯zlib

$ tar xvzf zlib-1.2.7.tar.gz

$ cd zlib-1.2.7/

$ ./configure –prefix=/home/runsisi/target

出現錯誤:

./ztest8154: 1: ./ztest8154: Syntax error: word unexpected (expecting ")")

Looking for a four-byte integer type... Not found.

由于zlib并非使用的標準autotools,沒有考慮交叉編譯的情況,這個錯誤是執行測試程序導致的,用于檢測32bit整型是int還是long還是別的,該錯誤無關緊要,忽略即可

$ make

$ make install

②編譯libpng

$ cd ..

$ tar xvzf libpng-1.5.12.tar.gz

$ cd libpng-1.5.12/

注意使用CFLAGS指定zlib的位置

$ ./configure --prefix=/home/runsisi/target CFLAGS="-I/home/runsisi/target/include -L/home/runsisi/target/lib" –host=arm-linux

$ make

$ make install

③編譯libjpeg

$ cd ..

$ tar xvzf jpegsrc.v8d.tar.gz

$ cd jpeg-8d/

$ ./configure --prefix=/home/runsisi/target –host=arm-linux

$ make

$ make install

④編譯php

$ cd ..

$ tar xvf php-5.4.7.tar

$ ./configure --prefix=/home/runsisi/target --with-gd --disable-libxml --disable-dom --with-zlib-dir=/home/runsisi/target --with-jpeg-dir=/home/runsisi/target --with-png-dir=/home/runsisi/target --host=arm-linux --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear –disable-phar

打開php-5.4.7/Makefile

修改67行附近CFLAGS_CLEAN = -I/usr/include -g -O2 -fvisibility=hidden為:

CFLAGS_CLEAN = -g -O2 -fvisibility=hidden

修改76行附近EXTRA_LDFLAGS_PROGRAM = -L/home/runsisi/target/lib為:

EXTRA_LDFLAGS_PROGRAM = -L/home/runsisi/target/lib -ldl

$ make

$ make install

⑤將/home/runsisi/target目錄下php及依賴的動態庫libz,libpng,libjpeg等打包好即可

查看php依賴的動態庫如下:

runsisi@runsisi-Aspire-4736Z:~/target/bin$ arm-linux-gnueabi-readelf -d php | grep NEEDED

0x00000001 (NEEDED) Shared library: [libdl.so.2]

0x00000001 (NEEDED) Shared library: [libpng15.so.15]

0x00000001 (NEEDED) Shared library: [libz.so.1]

0x00000001 (NEEDED) Shared library: [libjpeg.so.8]

0x00000001 (NEEDED) Shared library: [libm.so.6]

0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]

0x00000001 (NEEDED) Shared library: [libc.so.6]

0x00000001 (NEEDED) Shared library: [ld-linux.so.3]

整個安裝目錄(/home/runsisi/target)下的文件如下:

.

├── bin

│   ├── cjpeg

│   ├── djpeg

│   ├── jpegtran

│   ├── libpng15-config

│   ├── libpng-config -> libpng15-config

│   ├── php

│   ├── php-cgi

│   ├── php-config

│   ├── phpize

│   ├── rdjpgcom

│   └── wrjpgcom

├── include

│   ├── jconfig.h

│   └── ...

├── lib

│   ├── libjpeg.a

│   ├── libjpeg.la

│   ├── libjpeg.so -> libjpeg.so.8.4.0

│   ├── libjpeg.so.8 -> libjpeg.so.8.4.0

│   ├── libjpeg.so.8.4.0

│   ├── libpng15.a

│   ├── libpng15.la

│   ├── libpng15.so -> libpng15.so.15.12.0

│   ├── libpng15.so.15 -> libpng15.so.15.12.0

│   ├── libpng15.so.15.12.0

│   ├── libpng.a -> libpng15.a

│   ├── libpng.la -> libpng15.la

│   ├── libpng.so -> libpng15.so

│   ├── libz.a

│   ├── libz.so -> libz.so.1.2.7

│   ├── libz.so.1 -> libz.so.1.2.7

│   ├── libz.so.1.2.7

│   ├── php

│   │   └── build

│   │   ├── acinclude.m4

│   │   ├── config.guess

│   │   ├── config.sub

│   │   ├── libtool.m4

│   │   ├── ltmain.sh

│   │   ├── Makefile.global

│   │   ├── mkdep.awk

│   │   ├── phpize.m4

│   │   ├── run-tests.php

│   │   ├── scan_makefile_in.awk

│   │   └── shtool

│   └── pkgconfig

│   ├── libpng15.pc

│   ├── libpng.pc -> libpng15.pc

│   └── zlib.pc

├── php

│   └── ...

└── share

└── ...

42 directories, 309 files

2)單獨編譯gd擴展庫的方式

①首先設置交叉編譯器

②libz,libpng,libjpeg同樣需要按照第一種方式進行交叉編譯

③假設libz,libpng,libjpeg安裝在/home/runsisi/libs-target中,而php編譯make install時的位置在/home/runsisi/target中,但后來移動至/home/runsisi/Desktop/php-target中

④打開/home/runsisi/Desktop/php-target/bin/phpize,在第4行附近,修改:

prefix='/home/runsisi/target'

datarootdir='/home/runsisi/target/php'

為:

prefix='/home/runsisi/Desktop/php-target'

datarootdir='/home/runsisi/Desktop/php-target/php'

⑤打開/home/runsisi/Desktop/php-target/bin/php-config,
第4行附近,修改:

prefix="/home/runsisi/target"

datarootdir="/home/runsisi/target/php"

為:

prefix="/home/runsisi/Desktop/php-target"

datarootdir="/home/runsisi/Desktop/php-target/php"

在第11行附近,修改:

ldflags=" -L/home/runsisi/target/lib"

為指向libz,libpng,libjpeg的安裝位置

ldflags=" -L/home/runsisi/target/libs-target"

在13行附近,修改

extension_dir='/home/runsisi/target/lib/php/extensions/no-debug-non-zts-20100525'

為:

extension_dir='/home/runsisi/Desktop/php-target/lib/php/extensions/no-debug-non-zts-20100525'

⑥開始編譯gd擴展庫

$ tar xvf php-5.4.7.tar

$ cd php-5.4.7/ext/gd

$ /home/runsisi/Desktop/php-target/bin/phpize

$ ./configure --prefix=/home/runsisi/Desktop/php-target --host=arm-linux --with-php-config=/home/runsisi/Desktop/php-target/bin/php-config --with-zlib-dir=/home/runsisi/libs-target --with-png-dir=/home/runsisi/libs-target --with-jpeg-dir=/home/runsisi/libs-target

$ make

$ make install

查看gd.so依賴的動態庫如下:

runsisi@runsisi-Aspire-4736Z:~/Desktop/php-target/lib/php/extensions/no-debug-non-zts-20100525$ arm-linux-gnueabi-readelf -d gd.so | grep NEEDED

0x00000001 (NEEDED) Shared library: [libpng15.so.15]

0x00000001 (NEEDED) Shared library: [libz.so.1]

0x00000001 (NEEDED) Shared library: [libjpeg.so.8]

0x00000001 (NEEDED) Shared library: [libc.so.6]

0x00000001 (NEEDED) Shared library: [ld-linux.so.3]

php-target下面的文件如下:

.

├── bin

│   ├── php

│   ├── php-cgi

│   ├── php-config

│   └── phpize

├── include

│   └── ...

├── lib

│   └── php

│   ├── build

│   │   ├── acinclude.m4

│   │   ├── config.guess

│   │   ├── config.sub

│   │   ├── libtool.m4

│   │   ├── ltmain.sh

│   │   ├── Makefile.global

│   │   ├── mkdep.awk

│   │   ├── phpize.m4

│   │   ├── run-tests.php

│   │   ├── scan_makefile_in.awk

│   │   └── shtool

│   └── extensions

│   └── no-debug-non-zts-20100525

│   └── gd.so

└── php

└── ...

37 directories, 263 files


/Files/runsisi/php-gd安裝.pdf

 

posted on 2012-10-08 22:09 runsisi 閱讀(3022) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲在线播放| 欧美午夜宅男影院| 亚洲日韩成人| 欧美r片在线| 欧美成人在线影院| 亚洲丰满少妇videoshd| 最新国产精品拍自在线播放| 日韩视频中文字幕| 亚洲午夜精品久久| 久久av免费一区| 免费观看一级特黄欧美大片| 欧美精品综合| 国产日韩精品视频一区| 国产一区欧美日韩| 亚洲精品免费看| 亚洲欧美日韩另类精品一区二区三区| 性刺激综合网| 亚洲福利小视频| 亚洲永久免费观看| 女生裸体视频一区二区三区| 国产女人aaa级久久久级| 亚洲国产精品久久久久久女王| 一区二区三区视频在线| 久久亚洲精品视频| 日韩系列欧美系列| 久久久综合精品| 国产精品分类| 欧美 日韩 国产 一区| 国产精品欧美一区二区三区奶水| 国产精品午夜国产小视频| 在线日韩视频| 久久av在线看| 亚洲精品日韩精品| 欧美自拍偷拍| 国产精品久久久久天堂| 亚洲欧洲美洲综合色网| 久久全国免费视频| 亚洲影院污污.| 国产精品swag| 99视频一区| 欧美激情导航| 久久久久国色av免费看影院 | 亚洲在线成人精品| 欧美国产一区二区三区激情无套| 亚洲女人小视频在线观看| 欧美美女操人视频| 亚洲欧洲一区| 欧美成人精品一区二区三区| 欧美一二区视频| 国产精品自在在线| 亚洲欧美在线另类| 99精品欧美一区二区三区| 欧美成人精品h版在线观看| 黄色亚洲免费| 久久免费视频在线| 午夜一区在线| 国产欧美精品在线| 午夜精品亚洲一区二区三区嫩草| 亚洲久久在线| 欧美午夜宅男影院在线观看| 亚洲性人人天天夜夜摸| 99精品欧美| 国产精品国产a| 午夜精品福利一区二区蜜股av| 亚洲免费播放| 欧美亚洲第一页| 亚洲综合不卡| 亚洲欧美成人| 久久免费精品日本久久中文字幕| 午夜视频一区二区| 国产综合婷婷| 欧美激情精品久久久久久免费印度 | 巨胸喷奶水www久久久免费动漫| 亚洲欧美激情诱惑| 国产视频欧美视频| 久久综合给合久久狠狠狠97色69| 久久久久国产免费免费| 亚洲国产精品成人一区二区| 亚洲精选91| 国产裸体写真av一区二区 | 亚洲欧美日本国产有色| 久久精品日产第一区二区| 国产主播精品| 欧美.www| 欧美日本中文| 欧美一区久久| 久久婷婷av| 99在线热播精品免费| 一本色道久久综合一区 | 久久不射2019中文字幕| 国产一区二区三区在线观看免费视频 | 国产精品一二一区| 久久九九全国免费精品观看| 老司机亚洲精品| 亚洲性夜色噜噜噜7777| 欧美一区午夜视频在线观看| 亚洲精选视频在线| 亚洲女与黑人做爰| 亚洲欧洲视频| 午夜欧美大尺度福利影院在线看| 亚洲国产二区| 亚洲一区欧美激情| 一区在线播放| 在线亚洲精品| 亚洲电影免费在线观看| av成人老司机| 亚洲国产日韩欧美| 亚洲午夜在线观看视频在线| 一区在线免费观看| 一本一道久久综合狠狠老精东影业| 韩国av一区二区三区在线观看 | 亚洲欧洲精品一区二区三区| 国产一二三精品| 亚洲三级电影全部在线观看高清| 国产日韩精品电影| 亚洲精品乱码久久久久久黑人 | 久久综合久久综合九色| 亚洲一区二区伦理| 男人的天堂亚洲在线| 久久爱www久久做| 亚洲香蕉伊综合在人在线视看| 久久精品成人一区二区三区蜜臀| 一区二区三区视频观看| 男女精品视频| 欧美xx视频| 国内精品伊人久久久久av一坑| aa成人免费视频| 在线综合亚洲欧美在线视频| 欧美顶级艳妇交换群宴| 美女黄网久久| 狠狠干综合网| 欧美一区成人| 欧美资源在线| 国产免费成人| 亚洲一区二区三区午夜| 一本不卡影院| 一本大道久久精品懂色aⅴ| 久久国产精品网站| 欧美一区二区视频网站| 国产精品豆花视频| 亚洲视频视频在线| 亚洲男女自偷自拍图片另类| 欧美新色视频| 亚洲视频中文| 欧美一级免费视频| 国产精品盗摄久久久| 夜夜夜久久久| 亚洲一区二区久久| 国产精品久久久久久久久久三级 | 欧美激情一区二区三区蜜桃视频 | 欧美韩日一区二区| 亚洲黄色在线| 欧美国产乱视频| 亚洲久色影视| 亚洲在线第一页| 国产欧美精品一区二区三区介绍| 午夜视频在线观看一区二区三区| 久久aⅴ国产欧美74aaa| 激情av一区二区| 欧美国产视频在线| 中日韩美女免费视频网站在线观看| 亚洲永久网站| 韩国三级在线一区| 美国三级日本三级久久99| 91久久精品国产91久久| 亚洲一区二区在线免费观看视频| 国产欧美1区2区3区| 久久视频在线视频| 亚洲精品中文字幕有码专区| 性久久久久久久久| 在线观看欧美一区| 欧美日韩国产综合网| 亚洲国产另类精品专区| 亚洲午夜精品一区二区| 国产一区二区三区黄视频| 欧美极品影院| 亚洲一区二区在线看| 免费美女久久99| 亚洲一区二区影院| 尤物99国产成人精品视频| 欧美日韩日本网| 久久丁香综合五月国产三级网站| 亚洲国产精品一区| 久久高清一区| 中文在线资源观看网站视频免费不卡 | 久久久精品久久久久| 亚洲国产欧美一区| 亚洲精品乱码久久久久| 欧美黄色片免费观看| 一本大道久久精品懂色aⅴ | 欧美日本国产| 久久国产精品亚洲va麻豆| 最新亚洲一区| 久久夜色精品亚洲噜噜国产mv | 国产曰批免费观看久久久| 欧美喷水视频| 日韩视频一区二区| 美女图片一区二区| 欧美一区二区在线免费播放| 日韩视频一区二区|