国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

Android NDK 開(kāi)發(fā)之 CMake 必知必會(huì)

共 10269字,需瀏覽 21分鐘

 ·

2021-09-16 14:48

Android Studio 從 2.2 版本起開(kāi)始支持 CMake ,可以通過(guò) CMake 和 NDK 將 C/C++ 代碼編譯成底層的庫(kù),然后再配合 Gradle 的編譯將庫(kù)打包到 APK 中。

這意味就不需要再編寫(xiě) .mk 文件來(lái)編譯 so 動(dòng)態(tài)庫(kù)了。

CMake 是一個(gè)跨平臺(tái)構(gòu)建系統(tǒng),在 Android Studio 引入 CMake 之前,它就已經(jīng)被廣泛運(yùn)用了。

Google 官方網(wǎng)站上有對(duì) CMake 的使用示范,可以參考 官方指南。

總結(jié)官網(wǎng)對(duì) CMake 的使用,其實(shí)也就如下的步驟:

  1. add_library 指定要編譯的庫(kù),并將所有的 .c.cpp 文件包含指定。

  2. include_directories 將頭文件添加到搜索路徑中

  3. set_target_properties 設(shè)置庫(kù)的一些屬性

  4. target_link_libraries 將庫(kù)與其他庫(kù)相關(guān)聯(lián)

如果你對(duì)上面的步驟還是不了解,那么接下來(lái)就更深入了解 CMake 相關(guān)內(nèi)容吧~~~

CMake 的基本操作

以 Clion 作為工具來(lái)講解 CMake 的基本使用。

clion_cmake_build

CMake 編譯可執(zhí)行文件

一個(gè)打印 hello world 的 cpp 文件,通過(guò) CMake 將它編譯成可執(zhí)行文件。

在 cpp 的同一目錄下創(chuàng)建 CMakeLists.txt 文件,內(nèi)容如下:

1# 指定 CMake 使用版本
2cmake_minimum_required(VERSION 3.9)
3# 工程名
4project(HelloCMake)
5# 編譯可執(zhí)行文件
6add_executable(HelloCMake main.cpp )

其中,通過(guò) cmake_minimum_required 方法指定 CMake 使用版本,通過(guò) project 指定工程名。

add_executable 就是指定最后編譯的可執(zhí)行文件名稱和需要編譯的 cpp 文件,如果工程很大,有多個(gè) cpp 文件,那么都要把它們添加進(jìn)來(lái)。

定義了 CMake 文件之后,就可以開(kāi)始編譯構(gòu)建了。

CMake 在構(gòu)建工程時(shí)會(huì)生成許多臨時(shí)文件,避免讓這些臨時(shí)文件污染代碼,一般會(huì)把它們放到一個(gè)單獨(dú)的目錄中。

操作步驟如下:

1# 在 cpp 目錄下創(chuàng)建 build 目錄
2mkdir build
3# 調(diào)用 cmake 命令生成 makefile 文件
4cmake ..
5# 編譯
6make

在 build 目錄中可以找到最終生成的可執(zhí)行文件。

這就是 CMake 的一個(gè)簡(jiǎn)單操作,將 cpp 編譯成可執(zhí)行文件,但在 Android 中,大多數(shù)場(chǎng)景都是把 cpp 編譯成庫(kù)文件。

CMake 編譯靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)

同樣還是一個(gè) cpp 文件和一個(gè) CMake 文件,cpp 文件內(nèi)容為打印字符串的函數(shù):

1#include <iostream>
2void print() {
3    std::cout << "hello lib" << std::endl;
4}

同時(shí),CMake 文件也要做相應(yīng)更改:

1cmake_minimum_required(VERSION 3.12)
2# 指定編譯的庫(kù)和文件,SHARED 編譯動(dòng)態(tài)庫(kù)
3add_library(share_lib SHARED lib.cpp)
4# STATIC 編譯靜態(tài)庫(kù)
5# add_library(share_lib STATIC lib.cpp)

通過(guò) add_library 指定要編譯的庫(kù)的名稱,以及動(dòng)態(tài)庫(kù)還是靜態(tài)庫(kù),還有要編譯的文件。

最后同樣地執(zhí)行構(gòu)建,在 build 目錄下可以看到生成的庫(kù)文件。

到這里,就基本可以使用 CMake 來(lái)構(gòu)建 C/C++ 工程了。

CMake 基本語(yǔ)法

熟悉了上面的基本操作之后,就必然會(huì)遇到以下的問(wèn)題了:

  • 如果要參與編譯的 C/C++ 文件很多,難道每個(gè)都要手動(dòng)添加嘛?

  • 可以把編譯好的可執(zhí)行文件或者庫(kù)自動(dòng)放到指定位置嘛?

  • 可以把編譯好的庫(kù)指定版本號(hào)嘛?

帶著這些問(wèn)題,還是要繼續(xù)深入學(xué)習(xí) CMake 的相關(guān)語(yǔ)法,最好的學(xué)習(xí)材料就是 官網(wǎng)文檔 了。

為了避免直接看官方文檔時(shí)一頭霧水,這里列舉一些常用的語(yǔ)法命令。

注釋與大小寫(xiě)

在前面就已經(jīng)用到了 CMake 注釋了,每一行的開(kāi)頭 # 代表注釋。

另外,CMake 的所有語(yǔ)法指令是不區(qū)分大小寫(xiě)的。

變量定義與消息打印

通過(guò) set 來(lái)定義變量:

1# 變量名為 var,值為 hello
2set(var hello) 

當(dāng)需要引用變量時(shí),在變量名外面加上 ${} 符合來(lái)引用變量。

1# 引用 var 變量
2${var}

還可以通過(guò) message 在命令行中輸出打印內(nèi)容。

1set(var hello) 
2message(${var})

數(shù)學(xué)和字符串操作

數(shù)學(xué)操作

CMake 中通過(guò) math 來(lái)實(shí)現(xiàn)數(shù)學(xué)操作。

1# math 使用,EXPR 為大小
2math(EXPR <output-variable> <math-expression>)
1math(EXPR var "1+1")
2# 輸出結(jié)果為 2
3message(${var})

math 支持 +, -, *, /, %, |, &, ^, ~, <<, >> 等操作,和 C 語(yǔ)言中大致相同。

字符串操作

CMake 通過(guò) string 來(lái)實(shí)現(xiàn)字符串的操作,這波操作有很多,包括將字符串全部大寫(xiě)、全部小寫(xiě)、求字符串長(zhǎng)度、查找與替換等操作。

具體查看 官方文檔。

 1set(var "this is  string")
2set(sub "this")
3set(sub1 "that")
4# 字符串的查找,結(jié)果保存在 result 變量中
5string(FIND ${var} ${sub1} result )
6# 找到了輸出 0 ,否則為 -1
7message(${result})
8
9# 將字符串全部大寫(xiě)
10string(TOUPPER ${var} result)
11message(${result})
12
13# 求字符串的長(zhǎng)度
14string(LENGTH ${var} num)
15message(${num})

另外,通過(guò)空白或者分隔符號(hào)可以表示字符串序列。

1set(foo this is a list) // 實(shí)際內(nèi)容為字符串序列
2message(${foo})

當(dāng)字符串中需要用到空白或者分隔符時(shí),再用雙括號(hào)""表示為同一個(gè)字符串內(nèi)容。

1set(foo "this is a list") // 實(shí)際內(nèi)容為一個(gè)字符串
2message(${foo})

文件操作

CMake 中通過(guò) file 來(lái)實(shí)現(xiàn)文件操作,包括文件讀寫(xiě)、下載文件、文件重命名等。

具體查看 官方文檔

1# 文件重命名
2file(RENAME "test.txt" "new.txt")
3
4# 文件下載
5# 把文件 URL 設(shè)定為變量
6set(var "http://img.zcool.cn/community/0117e2571b8b246ac72538120dd8a4.jpg")
7
8# 使用 DOWNLOAD 下載
9file(DOWNLOAD ${var} "/Users/glumes/CLionProjects/HelloCMake/image.jpg")

在文件的操作中,還有兩個(gè)很重要的指令 GLOBGLOB_RECURSE

1# GLOB 的使用
2file(GLOB ROOT_SOURCE *.cpp)
3# GLOB_RECURSE 的使用
4file(GLOB_RECURSE CORE_SOURCE ./detail/*.cpp)

其中,GLOB 指令會(huì)將所有匹配 *.cpp 表達(dá)式的文件組成一個(gè)列表,并保存在 ROOT_SOURCE 變量中。

GLOB_RECURSE 指令和 GLOB 類似,但是它會(huì)遍歷匹配目錄的所有文件以及子目錄下面的文件。

使用  GLOBGLOB_RECURSE 有好處,就是當(dāng)添加需要編譯的文件時(shí),不用再一個(gè)一個(gè)手動(dòng)添加了,同一目錄下的內(nèi)容都被包含在對(duì)應(yīng)變量中了,但也有弊端,就是新建了文件,但是 CMake 并沒(méi)有改變,導(dǎo)致在編譯時(shí)也會(huì)重新產(chǎn)生構(gòu)建文件,要解決這個(gè)問(wèn)題,就是動(dòng)一動(dòng) CMake,讓編譯器檢測(cè)到它有改變就好了。

預(yù)定義的常量

在 CMake 中有許多預(yù)定義的常量,使用好這些常量能起到事半功倍的效果。

  • CMAKE_CURRENT_SOURCE_DIR

    • 指當(dāng)前 CMake 文件所在的文件夾路徑

  • CMAKE_SOURCE_DIR

    • 指當(dāng)前工程的 CMake 文件所在路徑

  • CMAKE_CURRENT_LIST_FILE

    • 指當(dāng)前 CMake 文件的完整路徑

  • PROJECT_SOURCE_DIR

    • 指當(dāng)前工程的路徑

比如,在 add_library 中需要指定 cpp 文件的路徑,以 CMAKE_CURRENT_SOURCE_DIR 為基準(zhǔn),指定 cpp 相對(duì)它的路徑就好了。

1# 利用預(yù)定義的常量來(lái)指定文件路徑
2add_library( # Sets the name of the library.
3             openglutil
4             # Sets the library as a shared library.
5             SHARED
6             # Provides a relative path to your source file(s).
7             ${CMAKE_CURRENT_SOURCE_DIR}/opengl_util.cpp
8             )

平臺(tái)相關(guān)的常量

CMake 能夠用來(lái)在 Window、Linux、Mac 平臺(tái)下進(jìn)行編譯,在它的內(nèi)部也定義了和這些平臺(tái)相關(guān)的變量。

具體查看 官方文檔 (https://cmake.org/cmake/help/v3.12/manual/cmake-variables.7.html) 。

列舉一些常見(jiàn)的:

  • WIN32

    • 如果編譯的目標(biāo)系統(tǒng)是 Window,那么 WIN32 為 True 。

  • UNIX

    • 如果編譯的目標(biāo)系統(tǒng)是 Unix 或者類 Unix 也就是 Linux ,那么 UNIX 為 True 。

  • MSVC

    • 如果編譯器是 Window 上的 Visual C++ 之類的,那么 MSVC 為 True 。

  • ANDROID

    • 如果目標(biāo)系統(tǒng)是 Android ,那么 ANDROID 為 1 。

  • APPLE

    • 如果目標(biāo)系統(tǒng)是 APPLE ,那么 APPLE 為 1 。

有了這些常量做區(qū)分,就可以在一份 CMake 文件中編寫(xiě)不同平臺(tái)的編譯選項(xiàng)。

1if(WIN32){
2    # do something
3}elseif(UNIX){
4    # do something
5}

函數(shù)、宏、流程控制和選項(xiàng) 等命令

具體參考 cmake-commands (https://cmake.org/cmake/help/v3.12/manual/cmake-commands.7.html) ,這里面包括了很多重要且常見(jiàn)的指令。

簡(jiǎn)單示例 CMake 中的函數(shù)操作:

1function(add a b)
2    message("this is function call")
3    math(EXPR num "${a} + $" )
4    message("result is ${aa}")
5endfunction()
6
7add(1 2)

其中,function 為定義函數(shù),第一個(gè)參數(shù)為函數(shù)名稱,后面為函數(shù)參數(shù)。

在調(diào)用函數(shù)時(shí),參數(shù)之間用空格隔開(kāi),不要用逗號(hào)。

宏的使用與函數(shù)使用有點(diǎn)類似:

1macro(del a b)
2    message("this is macro call")
3    math(EXPR num "${a} - $")
4    message("num is ${num}")
5endmacro()
6
7del(1 2)

在流程控制方面,CMake 也提供了 if、else 這樣的操作:

1set(num 0)
2if (1 AND ${num})
3    message("and operation")
4elseif (1 OR ${num})
5    message("or operation")
6else ()
7    message("not reach")
8endif ()

其中,CMake 提供了 AND、OR、NOTLESS、EQUAL 等等這樣的操作來(lái)對(duì)數(shù)據(jù)進(jìn)行判斷,比如 AND 就是要求兩邊同為 True 才行。

另外 CMake 還提供了循環(huán)迭代的操作:

1set(stringList this is string list)
2foreach (str ${stringList})
3    message("str is ${str}")
4endforeach ()

CMake 還提供了一個(gè) option 指令。

可以通過(guò)它來(lái)給 CMake 定義一些全局選項(xiàng):

1option(ENABLE_SHARED "Build shared libraries" TRUE)
2
3if(ENABLE_SHARED)
4    # do something
5else()
6    # do something   
7endif()

可能會(huì)覺(jué)得 option 無(wú)非就是一個(gè) True or False 的標(biāo)志位,可以用變量來(lái)代替,但使用變量的話,還得添加 ${} 來(lái)表示變量,而使用 option 直接引用名稱就好了。

CMake 閱讀實(shí)踐

明白了上述的 CMake 語(yǔ)法以及從官網(wǎng)去查找陌生的指令意思,就基本上可以看懂大部分的 CMake 文件了。

這里舉兩個(gè)開(kāi)源庫(kù)的例子:

  • https://github.com/g-truc/glm

    • glm 是一個(gè)用來(lái)實(shí)現(xiàn)矩陣計(jì)算的,在 OpenGL 的開(kāi)發(fā)中會(huì)用到。

    • CMakeLists.txt 地址在 https://github.com/g-truc/glm/blob/master/CMakeLists.txt

  • https://github.com/libjpeg-turbo/libjpeg-turbo

    • libjpeg-turbo 是用來(lái)進(jìn)行圖片壓縮的,在 Android 底層就是用的它。

    • CMakeLists.txt 地址在 https://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/CMakeLists.txt

這兩個(gè)例子中大量用到了前面所講的內(nèi)容,可以試著讀一讀增加熟練度。

為編譯的庫(kù)設(shè)置屬性

接下來(lái)再回到用 CMake 編譯動(dòng)態(tài)庫(kù)的話題上,畢竟 Android NDK 開(kāi)發(fā)也主要是用來(lái)編譯庫(kù)了,當(dāng)編譯完 so 之后,我們可以對(duì)它做一些操作。

通過(guò) set_target_properties 來(lái)給編譯的庫(kù)設(shè)定相關(guān)屬性內(nèi)容,函數(shù)原型如下:

1set_target_properties(target1 target2 ...
2                      PROPERTIES prop1 value1
3                      prop2 value2 ...)

比如,要將編譯的庫(kù)改個(gè)名稱:

1set_target_properties(native-lib PROPERTIES OUTPUT_NAME "testlib" )

更多的屬性內(nèi)容可以參考官方文檔 (https://cmake.org/cmake/help/v3.9/manual/cmake-properties.7.html#target-properties)。

不過(guò),這里面有一些屬性設(shè)定無(wú)效,在 Android Studio 上試了無(wú)效,在 CLion 上反而可以,當(dāng)然也可能是我使用姿勢(shì)不對(duì)。

比如,實(shí)現(xiàn)動(dòng)態(tài)庫(kù)的版本號(hào):

1set_target_properties(native-lib PROPERTIES VERSION 1.2 SOVERSION 1 )

對(duì)于已經(jīng)編譯好的動(dòng)態(tài)庫(kù),想要把它導(dǎo)入進(jìn)來(lái),也需要用到一個(gè)屬性。

比如編譯的 FFmpeg 動(dòng)態(tài)庫(kù),

1# 使用 IMPORTED 表示導(dǎo)入庫(kù)
2add_library(avcodec-57_lib SHARED IMPORTED)
3# 使用 IMPORTED_LOCATION 屬性指定庫(kù)的路徑
4set_target_properties(avcodec-57_lib PROPERTIES IMPORTED_LOCATION
5                        ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/armeabi/libavcodec-57.so )

鏈接到其他的庫(kù)

如果編譯了多個(gè)庫(kù),并且想庫(kù)與庫(kù)之間進(jìn)行鏈接,那么就要通過(guò) target_link_libraries 。

1target_link_libraries( native-lib
2                       glm
3                       turbojpeg
4                       log )

在 Android 底層也提供了一些 so 庫(kù)供上層鏈接使用,也要通過(guò)上面的方式來(lái)鏈接,比如最常見(jiàn)的就是 log 庫(kù)打印日志。

如果要鏈接自己編譯的多個(gè)庫(kù)文件,首先要保證每個(gè)庫(kù)的代碼都對(duì)應(yīng)一個(gè) CMakeLists.txt 文件,這個(gè) CMakeLists.txt 文件指定當(dāng)前要編譯的庫(kù)的信息。

然后在當(dāng)前庫(kù)的 CMakeLists.txt 文件中通過(guò) ADD_SUBDIRECTORY 將其他庫(kù)的目錄添加進(jìn)來(lái),這樣才能夠鏈接到。

1ADD_SUBDIRECTORY(src/main/cpp/turbojpeg)
2ADD_SUBDIRECTORY(src/main/cpp/glm)

添加頭文件

在使用的時(shí)候有一個(gè)容易忽略的步驟就是添加頭文件,通過(guò) include_directories 指令把頭文件目錄包含進(jìn)來(lái)。

這樣就可以直接使用 #include "header.h" 的方式包含頭文件,而不用  #include "path/path/header.h" 這樣添加路徑的方式來(lái)包含。

小結(jié)

以上,就是關(guān)于 CMake 的部分總結(jié)內(nèi)容。

歡迎關(guān)注微信公眾號(hào):【音視頻開(kāi)發(fā)進(jìn)階】,獲得最新文章推送~~~

掃碼關(guān)注


瀏覽 102
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 强行征服邻居人妻HD高清日本| 久久99国产乱子伦...| 99re在线观看| 蜜桃BBwBBWBBwBBw| 中文字幕第一| 囯产精品久久久| 华女与黑人91A∨| 少妇bbb搡bbbb搡bbbb| 国产成人片在线观看| 熟妇人妻久久中文字幕| 国产一级黄色| 欧美在线综合| 国产精品在线观看视频| 色噜噜人妻丝袜无码影院| 北条麻妃免费视频| 97黄色| 国产三级视频| 天天草天天射| 欧美疯狂做受XXXXX高潮| 精品一区二区三区四区五区六区 | 欧美97| 伊人性爱网| 黄色视频免费网站| 黄色搞逼视频| 亚洲欧美激情视频| 东京热无码视频| 亚洲性爱自拍| 91资源在线观看| 亚洲无码色婷婷| 又粗又硬又爽18级A片| 大奶一区二区| 亚洲激情内射| 日韩欧美人妻无码精品| gogogo免费高清在线偷拍| 日本操B久久| 影音先锋成人网| 婷婷色综合| 三区在线| 日本免费在线视频| 自拍三区| 午夜成人无码视频| 亚洲精品天堂无码| 午夜色色福利| 亚洲综合婷婷| 一起操在线| www.91在线| 激情五月婷婷五月| 51AV在线| 亚洲精品久久久久毛片A级绿茶 | 亚洲日逼| 国产成人精品三级麻豆| www国产精品| 乱子伦国产精品一区二区| 乱伦视频91| 大香蕉精品欧美色综合2025| 国产精品一区二区三区四区| 69AV在线| 成人网在线观看| 天天干天天操天天爽| 国产福利美女网站| 午夜色色影院| 日韩大片免费观看| 青误乐在线播放| 无码精品ThePorn| 图片区视频区小说区| 97热热| 欧美AA片| 开心五月激情婷婷| 想要xx在线观看| 大学生一级特黄大片| 在线观看AV网站| 高清无码网站在线观看| 级婬片AAAAAAA免费| www,操逼| 一级黄色视频日逼片| 一区二区三区免费| 成人伊人网| 500部大龄熟乱4K视频| 日韩黄色一级视频| 国产黃色AAA片| 人妻大屁股-91Porn| 欧美在线视频免费观看| 91免费高清视频| 人妻丝袜无码视频专区| av中文字幕无码| 在线观看视频无码| 91麻豆精品国产91久久久久久| 性欧美xxxx| 人人人妻人人人操| 女公务员人妻呻吟求饶| 婷婷五月18永久免费视频| 亚洲啊v| 欧美日韩在线观看一区| www.青青草视频| 懂色午夜福利一区二区三区| H片在线观看| 色婷婷丁香| 国产啊啊啊| 青青av| 日韩无码中字| 日韩小视频| 一级久久| 在线高清无码| 亚洲综合区| 国产无码一区二区| 91国产精品| 日韩激情片| 欧美丰满老熟妇XXXXX性| 91小视频在线观看| 人人操人人操人人操| 精品人妻一区二区三区蜜桃| 日韩精品无码人妻| 91成人区| 91久久无码一区人妻A片蜜桃| 一区二区三区在线视频观看| 97人人爽人人爽人人爽人人爽| 男女福利视频| 91亚洲国产成人久久精品网站| 国产精品理论片| 特写毛茸茸BBwBBwBBw| 黄色电影视频在线| 免费无码国产在线55| 婷婷午夜精品久久久久久| 婷婷狠狠爱| 国产区一区| 久久免费在线视频| 91福利在线视频| 日本操b| 色综合久久天天综合网| 国产伊人久久| 高清无码视频在线免费观看| 成人A片免费| 青青久草| 大香蕉电影网| 亚洲人气无码AV| 大黑逼网| 操逼大毛片| 亚洲国产精品18久久久久久| 日日爱99| 中国精品77777777| 成人丁香五月| 美日韩一区二区三区| 天堂网在线观看| 骚虎av| 中文字幕+乱码+中文乱码电影 | 欧美黄片网站| 男人天堂手机视频| 热久久综合网站| 久久性爱免费视频| 国产女人与禽zOz0性| 日韩精品在线一区| 午夜天堂精品久久久久9| 久久精品苍井空免费一区二 | 欧美老女人操逼| 伊人中文字幕| aa无码视频| 国产黄片自拍| 亚洲AV中文在线| 强行征服邻居人妻HD高清日本 | 高潮国产视频| 躁BBB躁BBB添BBBBBB| 欧美精品秘一区二区三区蜜臀 | 天堂无码视频在线播放| 免费av播放| 成人性爱免费网站| 特级欧美AAAAAA| 91久久久久国产一区二区| 中文字幕精品亚洲熟女| 国内自拍视频在线观看| 四川妇BBB桑BBB桑BBB| 色综合视频| 精品女同一区二区三区四区外站在线| 成人你懂的| 久草久热| 2022黄片| 中文无码在线视频| 91人妻无码精品一区二区毛片| 无码高清| 女公务员人妻呻吟求饶| 色欲AV秘无码一区二区三区| 少妇搡BBBB搡BBB搡造水多/| 3级片网站| 欧美,日韩,中文字幕| 婷婷综合av| 永久m3u8在线观看| 国产精品国产三级国产AⅤ原创| 波多野成人无码精品视频| 第一色影院| 国产你懂的| 韩国午夜福利视频| 青娱乐一级无码| 91精品国产一区二区三区| 色色热热| 欧美一级婬片A片免费软件| 日韩一级黄色视频| 亚洲最新视频| 97亚洲国产| 永久久久久久久| 欧美激情爱爱| 豆花视频成人| 欧美性交一区二区| 日韩操逼av| 五月天精品视频| 亚洲秘无码一区二区三区蜜桃中文 | 国产办公室丝袜人妖| 免费无码成人片在线播放| 青青草视频在线观看| 伊人五月婷婷| 亚洲天堂三级片| 久久精品视频一区| 色婷婷色99国产综合精品| 波多野结衣成人视频| 女人自慰在线观看| 北京熟妇搡BBBB搡BBBB电影 | 偷偷操av| 肏屄在线观看| 亚洲免费观看高清完整版在va线观看 | 国产成人午夜| 国产人与禽zoz0性伦| 欧美性爱AAA| 在线免费观看无码视频| 亚洲无aV在线中文字幕| 91香蕉| 先锋影音亚洲无码av| 一区二区三区www污污污网站| 国产一级二级视频| 一级黄色视频网站| 欧美精品久久久久久久久爆乳| 亚洲丁香五月天| aaaaaa在线观看免费高清| 操大爷影院| 大鸡吧在线| 91新婚人妻偷拍| 日韩免费AV电影| 日韩在线精品视频| 国产精品成人视频| 婷婷五月天丁香成人社区| 岛国电影av| 亚洲小说欧美激情另类A片小说 | 超碰首页| 色综合视频| 色五月婷婷婷| 婷婷社区五月天| 一区二区三区在线观看视频| 人人操夜夜| 国产一级片内射| 久草大| 最新一区二区| 久久艹综合网| 亚洲免费观看高清完整版在线观| 九九成人视频| 国产色秘乱码一区二区三区| 人人操人人操人人操人人操| 日本毛片视频| 97国产视频| 青青激情视频| 谁有毛片网址| 伊人成人电影| 在线播放日韩| 99国产在线观看免费视频| 欧美理论片在线观看| 炮友露脸青楼传媒刘颖儿| 久久久精品在线| 性生活黄色视频| 影音先锋aV成人无码电影| 老司机精品视频在线观看| 亚洲有码中文字幕| 亚洲AV无码成人精品区欧洲| 大鸡吧成人视频| 操逼逼片| 免费视频91蜜桃| 亚洲色无码人妻激情| 久久无码人妻精品一区二区三区| а√最新版在线中文8| 欧美大香蕉视频| 日韩成人性爱网站| 欧美色噜噜| 天堂资源网| 亚洲无码十八禁| 国产AV小电影| 日韩在线视频观看| 色香蕉在线视频| 黄色一级免费电影| 夜夜骚精品人妻av一区| 国产在线拍揄自揄拍无码男男| 午夜电影福利| 一纹A片免费观看| 九月丁香婷婷| 中文字幕免费视频在线观看| 五月天青青草超碰免费公开在线观看 | 国产69精品久久久久久久久久久久 | 东京热网站在线观看| 午夜AV在线免费观看| 欧美一卡二卡三卡| 天天草B| 激情五月婷婷丁香| 乱伦精品| 欧美亚洲成人网站| 成人免费网站黄| 日本中文字幕无码| 日本少妇高潮喷水XXXXXXX| 三上悠亚无码破解69XXX| 91豆花视频18| 特级特黄AAAA免费看| 久久aa| 国产狂喷水潮免费网站www| 国产乱子伦一区二区三区免看| 亚洲无码图片| 亚洲无码视频播放| 国产操老女人| 国产网站精品| 怡春院国产| 天天干天天操天天拍| 国产成人综合视频| 小黃片秘嗯嗯啊| 操逼操123| 人人操人人爽| 在线观看免费视频黄| 五月婷婷AV| 日韩欧美三级在线| 黄片网站视频| 国产白嫩精品久久久久久| 翔田AV无码秘三区| 伊人网在线免费视频| 亚洲欧美日韩色图| 亚洲高清人妻| 欧美搡BBBB搡BBB| 超级碰碰碰碰碰碰碰碰碰| 成年人黄色视频网站| 黄色视频网站免费| 色婷在线视频| 天天干天天射天天操| 69福利| 午夜在线视频| 日本有码中文字幕| 怡红院男人的天堂| 久久99视频免费观看| 欧美一区视频| 91亚瑟视频| 人人操大香蕉| 国产波霸爆乳一区二区| 高H视频在线观看| 免费视频在线观看黄| 91网站免费| 国产无码内射视频| 国产福利一区二区| 精品成人无码一区二区三区| 色婷婷激情| 大香焦伊人国产| 操逼在线免费观看| 做爱激情视频网站| 操逼AV无码| 日本老女人视频| 久久综合中文| 黄色片免费视频网站| 思思热精品在线| 亚洲成人视频免费在线观看 | a天堂视频| 三级操逼| 欧美日韩三区| 三级成人AV| 色哟哟国产| 撸撸综合网| 精品视频国产| 无遮挡动态图| 国产丝袜视频| 久久久久久久久久久久成人| 韩国无码一区二区三区| 一区二区三区高清不卡| 秋霞午夜| 少妇人妻一级A毛片| 秋霞一区| 日韩无码你懂的| 无码婷婷| 红桃91人妻爽人妻爽| 日韩第一页| 国产性爱免费视频| 亚洲无码免费观看视频| 刘玥一级婬片A片AAA| 亚洲精品自拍| 狠狠成人| 国产综合久久久777777| 中文一区在线| 日本成人视频在线免费播放| 亚l洲视频在线观看| 特级丰满少妇免费观看| 欧美性BBB槡BBB槡BBB| 操逼视频一区| 久久久久久穴| 国产成人精品国内自产拍免费看 | 免费黄色视频在线观看| 91大香蕉视频| 中文字幕韩日| 欧美日韩在线电影| 天天搞搞| 欧美视频基地| 四川美女网久草| 午夜成人福利片| 婷婷五月天成人社区| 婷婷在线观看视频| a片免费观看视频| 亚洲精品无码在线观看| 中文成人无字幕乱码精品区| 婷婷五月18永久免费视频| 国产三级91| 亚洲天堂在线视频播放| A片免费在线观看| 亚洲人成色777777无码| 成人黄网站免费观看| 婷婷五月天综合网| 操日本女人逼| 影音先锋av在线资源站| 五月丁香成人| 欧亚一区二区| 久久99九九| 日本大香蕉伊人| 国产一区在线播放| 四虎国产| 久久夜色精品国产噜噜亚洲AV| 性爱网站免费看| 国产成人精品免高潮在线人与禽一| 国产精品v欧美精品v日韩精品 | 日韩大片在线观看| 无码人妻91| 中文字幕偷拍| 嫩草久久| 俺去了俺来也| 三级在线视频| 婷婷看片| 天天干天天上| 中文字幕亚洲综合| 欧美久久久久久久| 性做久久久久久久久| 色片在线观看| www黄色com| 欧美午夜精品久久久| 成人无码区免费| 国产超碰青青草| 轻轻操内射无码| 影音先锋国产精品| 91无码国产成人精品| 精品无码一区二区| 超碰人人插| 翔田千里一区二区三区精品播放 | 国产无套免费网站69| 中文字幕在线视频无码| 无码一区二区三区四区五区| 国产草草| 亚洲无吗视频| 高清无码在线视频| 国产成人精品123区免费视频| 亚洲天堂无码av| 亚洲无码久久| 丁香在线视频| 青娱乐精品在线视频| 国产精品9999久久久久仙踪林 | 大地影院在线资源观看| 十八禁视频在线观看网站.www| 日韩AV电影网| 欧美一级日韩一级| 翔田千里無碼破解| 人人操人人爱人人妻| 亚洲无码视频在线| 欧美婷婷五月天| 抽插影院| 久久嫩草精品| 人人看人人爽| 亚洲va欧洲va国产va不卡| 国产一级片免费视频| 国产精品久久| 色片视频| 182av| 午夜无码免费| 欧美在线播放| 色悠久久久| 成人A片在线| 男人的天堂av网站| 手机看片久久| 日韩av中文字幕在线| 欧美性爱A片| 色94色.欧美.setu| 亚洲影院在线观看| 欧美射精视频| 一级片国产| 毛片一区| 欧美AAAAAA| 无码秘蜜桃吴梦梦| 中国老少配BBwBBwBBW| 国产小视频在线观看| 中文国产字幕| 人妻av无码| 日韩无码一卡二卡| 亚洲无码播放| 爱爱黄色视频| 亚洲黄在线观看| 西西337| 亚洲女与黑人正在播放| 亚洲天堂2015| 操操AV| 欧美成人国产| 欧美操逼免费视频| AV电影在线观看| 麻豆亚洲AV成人无码久久精品| 丰满人妻一区二区三区四区不卡| 日韩一级性爱| 538在线视频| 九色PORNY蝌蚪视频| 偷拍亚洲色图| 日本三级片中文字幕| 国产成人+综合亚洲+天堂| 夜夜狠狠躁日日躁| 黄色电影视频网站| 欧美国产中文| 操操操操一本到| 日韩一级黄色视频| 中文字幕免费视频在线观看| 日B无码| 操比无码| 人人操人人操人人操人人操人人操 | 伊人色爱| 国产无码专区| 婷婷六月激情| 国产一级二级视频| 青草青在线| 午夜激情福利| 国产午夜男女性爱| 激情一区二区三区| 影音先锋av中文字幕| 亚洲国产成人在线视频| 午夜福利视频无码| 高清无码学生妹| 91站街农村熟女露脸| 一本色道久久综合狠狠躁的推荐| 日中文字幕| 波多野结衣av一区| 91色色网| 日韩欧美一级片| 92无码| 成人片无码| 黄色内射视频| 青娱乐一级无码| 影音先锋色站| 国产熟妇码视频黑料| 陈冠希和张柏芝mv| 日韩有码在线观看| 午夜黄色大片| 男女啪啪啪网站| 在线免费高清无码| 白浆四溢av| 激情六月婷婷| 99久久久久久久| 欧美操人| 欧美三级理论片| 吃奶做爱视频| 性欧美一区二区| 激情麻豆论坛| 77777色婷婷| 成人网站一区| 欧美在线成人视频| 午夜综合在线| 人人操人人妻人人爽| 欧美成人福利视频| 中文字幕高清在线中文字幕中文字幕| 色综合99| 中文av在线播放| 99视频在线看| 国产美女一级真毛片酒店| 艹逼91| 亚洲国产精品尤物yw在线观看| 樱桃码一区二区三区| 欧美99| 亚洲天堂成人| 日韩黄视频| 午夜成人AV| AV无码免费一区二区三区不卡| 色婷婷18正码国产| 亚洲天堂无码av| 激情五月丁香花| 激情乱伦网| 天天影视综合网免费观看电视剧国产 | 天天色视频| 亚洲成人三级片| a网站在线观看| 天堂网2014| 亚洲成色A片77777在线小说 | 国产成人综合网| h国产在线| 人人看人人色| 亚洲精品一区二区三区四区五区六区| 亚洲无码69| 苍井空精毛片精品久久久| 久久A视频| 亚洲一级免费免费在线观看| 国产综合自拍| 蜜桃av秘无码一区三区四| 一级A片60分钟免费看| 国产精品一区在线| 2025国产成人精品一区| 精品黄色片| 91国产乱伦| 丁香五月亚洲| 亚洲天堂在线观看免费视频| 在线观看三级| 中文字幕在线播放第一页| 人人肏人人射| 国产,亚洲91| 伊人久久大综合中文无码| 日韩本色一区| 欧美激情视频一区二区三区不卡| 欧美黄色电影网站| 国产一区在线视频| H片在线免费观看| 国产婷婷色一区二区在线观看| 欧美精品日韩在线观看| 久久久人妻熟妇精品无码蜜桃| 午夜精品人妻无码| www俺来也com| 欧美人成人无码| 三级成人免费| 天堂网一区二区三区| 欧一美一婬一伦一区?| 亚洲A片视频| 精品交换一区二区三区无码| 久操精品视频| 日韩aaaa| 亚洲激情成人| 国产91综合一区在线观看| 亚洲无码久久飞鱼网站| 激情麻豆论坛| 初学影院WWWBD英语完整版在线观看 | 国产青青| 免费日韩| 四虎成人视频| 青草国产| 极品人妻疯狂3p超刺激| 精品一二区| 日本A级毛片| 丁香五月社区| 天堂在线中文| 日韩另类视频| 亚洲AV动漫| 极品少妇AV| 高H视频在线观看| 九色PORNY国产成人| 超碰97久久| 欧美三级欧美成人高清| igao视频| 久久国产性爱| 91夫妻视频| 一级a片在线观看| 成人电影91| 亚洲一级A片| 中文字幕偷拍| 操日本老女人| av女人天堂| 四房婷婷| 亚洲五月婷婷| 91久久| 最新福利视频| 超碰激情| 日韩三级中文| 久艹99| 中文字幕精品久久久久人妻红杏Ⅰ | 欧美做爱网站| 亚洲高清免费| 日韩www| 初学影院WWWBD英语完整版在线观看| A一级横色大片| 最近中文字幕2022在线观看A| 大香蕉福利视频导航| 波多野结衣av在线观看窜天猴| 亚洲无吗在线视频| 超碰在线日韩| 亚洲三级无码在线观看| 起碰视频| 日韩中文字幕国产| 怡春院在线视频| 99爱精品| 黄色片国产| 色综合中文字幕| 噜噜在线| 91人妻人人澡人人| 免费的A片| 久久综合中文字幕| 欧美激情一区二区| 亚洲成人影片| 中文字幕av高清片,中文在线观看 www一个人免费观看视频www | 欧美日逼| 另类老妇性bbwbbwbbw| 97黄色| 国产成人黄色片| www99精品| 嫩BBB槡BBBB槡BBBB百度| 色综合久久久| 韩国三级HD久久精品HD| 日韩免费看| 一区二区三区成人电影| 99这里只有精品视频| 99九九99九九九99九他書對| 日韩www| 在线免费看AV片| 日皮视频网站| 亚洲无码在线资源| 无码人妻AⅤ一区二区三区| 国产三级精品三级在线观看| 五月丁香色播| 中国黄色学生妹一级片| 亚洲精品一级二级三级| 日本精品在线| 成人福利| 国产激情无码| 99久久爱re热6在播放| 懂色一区二区二区在线播放视频| 无码人妻丰满熟妇区17水蜜桃 | 777无码| av日韩无码| 日日精品| 亚洲视频一区| 欧美不卡在线视频| 亚洲素人无码| 丁香六月激情婷婷| 青草无码| 婷婷天堂网| 男人AV在线| 日韩无码激情| 伊人网在线播放| 性爱网站免费看| 在线v片| 69性爱视频| 久久久久性| 五月中文字幕| 亚洲精品资源| 东京热免费视频| 久久激情国产| 免看一级a一片| 久久久久久久免费无码| AV天天干| 91亚洲国产AⅤ精品一区二区 | 欧美日韩在线视频一区| 人人操人人操人人操人人| 美女网站在线观看| 日韩特黄| 狼友初视频在线观看| 在线观看免费高清无码| 少妇久久久久久久久久| 一级无码在线观看| 丁香婷婷视频| 免费在线观看黄色| 91人妻视频| 亚洲一本色道中文无码| 亚洲国产成人久久| 天码人妻一区二区三区在线看| 中文字幕不卡视频| 婷婷丁香激情五月天| 久久草| 亚洲视频三区| 国产小视频在线免费观看| 亚洲码无人客一区二区三区| 无码av中文字幕| 99热99| 国产欧美一区二区人妻喷水| 国产成人精品一区二区三区四区| 啊啊啊啊啊在线观看| 亚洲www在线| 97人人爽人人爽人人人| 久操大香蕉| 亚洲国产av一区| 日爽夜爽| 三级片一区| 亚洲无码视频一区| 精品第一页| 国产在线内射| 91视频高清无码| 懂色av蜜臀av粉嫩av分享| 91国产爽黄在线| 亚洲免费观看| 成年人黄色视频免费观看| 91逼站| 2025国产成人精品一区| 夜夜骚av一区二区三区| 午夜操爽| 精品一区二区免费视频| HEYZO少婦AV無碼精品| 91豆花成人网站| 色婷婷久久| 亚洲激情精品| 高清无码视频免费| 日一日射一射| 免费看一级一级人妻片| 人妻丝袜中出北条麻妃| 自慰在线观看网站| 亚洲午夜av| 草莓视频在线播放| 国产一级在线观看| 东方AV免费在线观看| 日韩在线观看中文字幕| 午夜激情四射| 四虎在线观看| 91成人综合| 欧美女人日逼视频| 看黄色一级片| 免费在线观看黄色视频网站| 日本黄色的视频| 国产麻豆传媒| 成人av中文字幕| 亚洲操操操| 日本在线不卡一区| 亚洲免费成人电影| 91草视频| 亚洲高清视频在线观看| 婷婷好色五月天| 日韩中文字幕在线人成网站| 日韩AV免费在线| 亚洲91视频| 二区三区在线观看| 欧美成年人视频| 久草热在线| 天天色免费视频| 午夜亚洲AⅤ无码高潮片苍井空| 欧美aaa视频| 青青草成人在线| 亚洲精品无码人妻| 少妇搡BBBB搡BBB搡毛片少妇| 囯产精品久久久久久久| 91久久爽久久爽爽久久片| 先锋影音亚洲无码av| 一级特黄妇女高潮AA片免费播放 | 欧美视频中文字幕| 朝鲜性感AV在线| 无码人妻AV一区| 中文字幕乱码中文字幕电视剧| 久久精品6| 亚洲AV片一区二区三区| 日韩人妻精品中文字幕专区不卡| 在线观看黄片视频| 国产十欧洲十美国+亚洲一二三区在线午夜 | 亚洲视频免费| 亚洲区在线播放| 久久久久久久无码| 欧美成人视频在线观看| 日本午夜影院| 西西444WWW无码大胆知乎| 99在线视频免费观看| 日韩高清色| 日韩网站在线观看| 亚洲天堂视频在线| 精品人妻一区二区三区四区| 黄片高清无码在线观看| 欧洲成人免费视频| 欧美黄色大香蕉| 日本一级特级毛片视频| 国产乱妇乱子伦视频免费观看让女人| 色婷婷视频在线观看| 一级片免费观看视频| 日韩免费成人| 免费黄色AV| 欧美一区二区三区在线播放| 91视频www| 黄色视频日本| 色老板综合| jizz在线观看| 亚洲天堂本一| 第一福利导航大全| av片在线免费观看| 欧美淫秽视频| 激情国产AV| 亚洲免费中文字幕| 国产精品久久久久久久久A| 日韩精品无码电影| 99激情视频| 四季AV一区二区凹凸懂色桃花| 午夜天堂精品久久久久9| 毛片久久| 久草网址| 成人亚洲AV| 中文无码AV| 超碰97成人| 亚洲专区在线| 欧美成人图片视频在线| 一级a片免费| 激情开心五月天| 婷婷五月天激情丁香| 国产三级麻豆| 大鸡吧在线观看| 99插插插| 国产男女啪啪视频| 少妇爆射| 四色影视| 亚洲一区在线播放| 日韩v欧美v日本v亚洲v国产v| 日韩中文字幕无码中字字幕| 大香蕉A片| 亚洲综合一区二区三区| 99视频久久| 一级黄色AV片| 91成人在线电影| 欧美亚韩一区二区三区| 嘿嘿午夜影院| 日韩色综合| 欧美性极品少妇精品网站|