精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我最喜歡的 Go 構建選項

開發 后端
這些方便的 Go 構建選項可以幫助你更好地理解 Go 的編譯過程。

學習一門新的編程語言最令人欣慰的部分之一,就是最終運行了一個可執行文件,并獲得預期的輸出。當我開始學習 Go 這門編程語言時,我先是閱讀一些示例程序來熟悉語法,然后是嘗試寫一些小的測試程序。隨著時間的推移,這種方法幫助我熟悉了編譯和構建程序的過程。

Go 的構建選項提供了更好地控制構建過程的方法。它們還可以提供額外的信息,幫助把這個過程分成更小的部分。在這篇文章中,我將演示我所使用的一些選項。注意:我使用的“構建build”和“編譯compile”這兩個詞是同一個意思。

開始使用 Go

我使用的 Go 版本是 1.16.7。但是,這里給出的命令應該也能在最新的版本上運行。如果你沒有安裝 Go,你可以從 ??Go 官網?? 上下載它,并按照說明進行安裝。你可以通過打開一個命令提示符,并鍵入下面的命令來驗證你所安裝的版本:

$ go version

你應該會得到類似下面這樣的輸出,具體取決于你安裝的版本:

go version go1.16.7 linux/amd64

基本的 Go 程序的編譯和執行方法

我將從一個在屏幕上簡單打印 “Hello World” 的 Go 程序示例開始,就像下面這樣:

$ cat hello.go
package main

import "fmt"

func main() {
fmt.Println("Hello World")
}

在討論更高級的選項之前,我將解釋如何編譯這個 Go 示例程序。我使用了 ??build?? 命令,后面跟著 Go 程序的源文件名,本例中是 ??hello.go??,就像下面這樣:

$ go build hello.go

如果一切工作正常,你應該看到在你的當前目錄下創建了一個名為 ??hello?? 的可執行文件。你可以通過使用 ??file?? 命令驗證它是 ELF 二進制可執行格式(在 Linux 平臺上)。你也可以直接執行它,你會看到它輸出 “Hello World”。

$ ls
hello  hello.go

$ file ./hello
./hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped

$ ./hello
Hello World

Go 提供了一個方便的 ??run?? 命令,以便你只是想看看程序是否能正常工作,并獲得預期的輸出,而不想生成一個最終的二進制文件。請記住,即使你在當前目錄中沒有看到可執行文件,Go 仍然會在某個地方編譯并生成可執行文件并運行它,然后把它從系統中刪除。我將在本文后面的章節中解釋。

$ go run hello.go
Hello World

$ ls
hello.go

更多細節

上面的命令就像一陣風一樣,一下子就運行完了我的程序。然而,如果你想知道 Go 在編譯這些程序的過程中做了什么,Go 提供了一個 ??-x?? 選項,它可以打印出 Go 為產生這個可執行文件所做的一切。

簡單看一下你就會發現,Go 在 ??/tmp?? 內創建了一個臨時工作目錄,并生成了可執行文件,然后把它移到了 Go 源程序所在的當前目錄。

$ go build -x hello.go

WORK=/tmp/go-build1944767317
mkdir -p $WORK/b001/

<< snip >>

mkdir -p $WORK/b001/exe/
cd .
/usr/lib/golang/pkg/tool/linux_amd64/link -o $WORK \
/b001/exe/a.out -importcfg $WORK/b001 \
/importcfg.link -buildmode=exe -buildid=K26hEYzgDkqJjx2Hf-wz/\
nDueg0kBjIygx25rYwbK/W-eJaGIOdPEWgwC6o546 \
/K26hEYzgDkqJjx2Hf-wz -extld=gcc /root/.cache/go-build /cc \
/cc72cb2f4fbb61229885fc434995964a7a4d6e10692a23cc0ada6707c5d3435b-d
/usr/lib/golang/pkg/tool/linux_amd64/buildid -w $WORK \
/b001/exe/a.out # internal
mv $WORK/b001/exe/a.out hello
rm -r $WORK/b001/

這有助于解決在程序運行后卻在當前目錄下沒有生成可執行文件的謎團。使用 ??-x?? 顯示可執行文件確實在 ??/tmp?? 工作目錄下創建并被執行了。然而,與 ??build?? 命令不同的是,可執行文件并沒有移動到當前目錄,這使得看起來沒有可執行文件被創建。

$ go run -x hello.go


mkdir -p $WORK/b001/exe/
cd .
/usr/lib/golang/pkg/tool/linux_amd64/link -o $WORK/b001 \
/exe/hello -importcfg $WORK/b001/importcfg.link -s -w -buildmode=exe -buildid=hK3wnAP20DapUDeuvAAS/E_TzkbzwXz6tM5dEC8Mx \
/7HYBzuaDGVdaZwSMEWAa/hK3wnAP20DapUDeuvAAS -extld=gcc \
/root/.cache/go-build/75/ \
7531fcf5e48444eed677bfc5cda1276a52b73c62ebac3aa99da3c4094fa57dc3-d
$WORK/b001/exe/hello
Hello World

模仿編譯而不產生可執行文件

假設你不想編譯程序并產生一個實際的二進制文件,但你確實想看到這個過程中的所有步驟。你可以通過使用 ??-n?? 這個構建選項來做到這一點,該選項會打印出通常的執行步驟,而不會實際創建二進制文件。

$ go build -n hello.go

保存臨時目錄

很多工作都發生在 ??/tmp?? 工作目錄中,一旦可執行文件被創建和運行,它就會被刪除。但是如果你想看看哪些文件是在編譯過程中創建的呢?Go 提供了一個 ??-work?? 選項,它可以在編譯程序時使用。??-work?? 選項除了運行程序外,還打印了工作目錄的路徑,但它并不會在這之后刪除工作目錄,所以你可以切換到該目錄,檢查在編譯過程中創建的所有文件。

$ go run -work hello.go
WORK=/tmp/go-build3209320645
Hello World

$ find /tmp/go-build3209320645
/tmp/go-build3209320645
/tmp/go-build3209320645/b001
/tmp/go-build3209320645/b001/importcfg.link
/tmp/go-build3209320645/b001/exe
/tmp/go-build3209320645/b001/exe/hello

$ /tmp/go-build3209320645/b001/exe/hello
Hello World

其他編譯選項

如果說,你想手動編譯程序,而不是使用 Go 的 ??build?? 和 ??run?? 這兩個方便的命令,最后得到一個可以直接由你的操作系統(這里指 Linux)運行的可執行文件。那么,你該怎么做呢?這個過程可以分為兩部分:編譯和鏈接。你可以使用 ??tool?? 選項來看看它是如何工作的。

首先,使用 ??tool compile?? 命令產生結果的 ??ar?? 歸檔文件,它包含了 ??.o?? 中間文件。接下來,對這個 ??hello.o?? 文件執行 ??tool link?? 命令,產生最終的可執行文件,然后你就可以運行它了。

$ go tool compile hello.go

$ file hello.o
hello.o: current ar archive

$ ar t hello.o
__.PKGDEF
_go_.o

$ go tool link -o hello hello.o

$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped

$ ./hello
Hello World

如果你想進一步查看基于 ??hello.o?? 文件產生可執行文件的鏈接過程,你可以使用 ??-v?? 選項,它會搜索每個 Go 可執行文件中包含的 ??runtime.a?? 文件。

$ go tool link -v -o hello hello.o
HEADER = -H5 -T0x401000 -R0x1000
searching for runtime.a in /usr/lib/golang/pkg/linux_amd64/runtime.a
82052 symbols, 18774 reachable
1 package symbols, 1106 hashed symbols, 77185 non-package symbols, 3760 external symbols
81968 liveness data

交叉編譯選項

現在我已經解釋了 Go 程序的編譯過程,接下來,我將演示 Go 如何通過在實際的 ??build?? 命令之前提供 ??GOOS?? 和 ??GOARCH?? 這兩個環境變量,來允許你構建針對不同硬件架構和操作系統的可執行文件。

這有什么用呢?舉個例子,你會發現為 ARM(arch64)架構制作的可執行文件不能在英特爾(x86_64)架構上運行,而且會產生一個 Exec 格式錯誤。

下面的這些選項使得生成跨平臺的二進制文件變得小菜一碟:

$ GOOS=linux GOARCH=arm64 go build hello.go

$ file ./hello
./hello: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, not stripped

$ ./hello
bash: ./hello: cannot execute binary file: Exec format error

$ uname -m
x86_64

你可以閱讀我之前的博文,以更多了解我在 ??使用 Go 進行交叉編譯?? 方面的經驗。

查看底層匯編指令

源代碼并不會直接轉換為可執行文件,盡管它生成了一種中間匯編格式,然后最終被組裝為可執行文件。在 Go 中,這被映射為一種中間匯編格式,而不是底層硬件匯編指令。

要查看這個中間匯編格式,請在使用 ??build?? 命令時,提供 ??-gcflags?? 選項,后面跟著 ??-S??。這個命令將會顯示使用到的匯編指令:

$ go build -gcflags="-S" hello.go
# command-line-arguments
"".main STEXT size=138 args=0x0 locals=0x58 funcid=0x0
0x0000 00000 (/test/hello.go:5) TEXT "".main(SB), ABIInternal, $88-0
0x0000 00000 (/test/hello.go:5) MOVQ (TLS), CX
0x0009 00009 (/test/hello.go:5) CMPQ SP, 16(CX)
0x000d 00013 (/test/hello.go:5) PCDATA $0, $-2
0x000d 00013 (/test/hello.go:5) JLS 128

<< snip >>

你也可以使用 ??objdump -s?? 選項,來查看已經編譯好的可執行程序的匯編指令,就像下面這樣:

$ ls
hello hello.go

$ go tool objdump -s main.main hello
TEXT main.main(SB) /test/hello.go
hello.go:5 0x4975a0 64488b0c25f8ffffff MOVQ FS:0xfffffff8, CX
hello.go:5 0x4975a9 483b6110 CMPQ 0x10(CX), SP
hello.go:5 0x4975ad 7671 JBE 0x497620
hello.go:5 0x4975af 4883ec58 SUBQ $0x58, SP
hello.go:6 0x4975d8 4889442448 MOVQ AX, 0x48(SP)

<< snip >>

分離二進制文件以減少其大小

Go 的二進制文件通常比較大。例如, 一個簡單的 “Hello World” 程序將會產生一個 1.9M 大小的二進制文件。

$ go build hello.go
$
$ du -sh hello
1.9M    hello
$
$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
$

為了減少生成的二進制文件的大小,你可以分離執行過程中不需要的信息。使用 ??-ldflags?? 和 ??-s -w?? 選項可以使生成的二進制文件略微變小為 1.3M。

$ go build -ldflags="-s -w" hello.go
$
$ du -sh hello
1.3M    hello
$
$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
$

總結

我希望這篇文章向你介紹了一些方便的 Go 編譯選項,同時幫助了你更好地理解 Go 編譯過程。關于構建過程的其他信息和其他有趣的選項,請參考 Go 命令幫助:

$ go help build

題圖由 ??Ashraf Chemban??? 在 ???Pixabay?? 上發布。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2020-08-06 15:14:07

D語言編程語言

2024-11-05 09:42:59

開發軟件命令行

2012-04-28 09:14:50

編程編程語錄

2021-10-27 14:55:57

Mark TextMarkdown編輯器

2021-01-14 23:14:40

開源Linux生產力應用

2022-01-03 07:46:36

Linux應用程序操作系統

2012-03-30 13:56:17

編程開發

2013-10-08 09:34:57

編程漫畫編程漫畫

2016-03-02 15:13:54

面試開發者問題

2024-03-13 13:39:21

2012-02-02 16:42:24

Android用戶

2020-02-10 10:05:12

Linux發行版Ubuntu

2020-08-29 18:51:14

效能工具效率生產力

2013-10-17 11:15:19

2021-03-09 11:09:10

LinuxWindows應用程序

2024-06-28 13:57:34

2018-01-31 14:20:36

Linux分區管理fdisk

2018-11-21 15:09:53

勒索軟件遠程桌面協議攻擊

2022-01-05 08:56:20

Vue修飾符面試

2017-01-11 09:16:49

SQLPython編程語言
點贊
收藏

51CTO技術棧公眾號

最新国产中文字幕| 911亚洲精选| 在线a免费看| 青青草97国产精品免费观看 | 亚洲第一成肉网| 成人午夜在线影视| 91在线观看免费视频| 国产精品色婷婷视频| 乱h高h女3p含苞待放| 日韩欧美影院| 亚洲男人影院| 色噜噜国产精品视频一区二区 | 黄色污污网站在线观看| 91久久久精品国产| 日韩精品中文字幕在线| 在线观看日本www| 卡通欧美亚洲| 亚洲综合在线第一页| 久久99精品久久久水蜜桃| 中国精品一区二区| 夜夜嗨一区二区| 久久久久999| 李宗瑞91在线正在播放| 久久久久久亚洲精品美女| 日韩欧美中文第一页| 国产女人18毛片| 欧美 日韩 国产 精品| 美腿丝袜亚洲色图| 欧洲日韩成人av| 国产精品自拍视频一区| 久久视频在线| 亚洲图片欧洲图片av| 日本一区二区在线观看视频| 香蕉久久久久久| 在线观看国产精品网站| 拔插拔插海外华人免费| 国产激情在线| 亚洲天堂2016| 国产精品综合久久久| 亚洲精品视频在线观看免费视频| 亚洲欧洲日韩| 精品国产依人香蕉在线精品| 国产精品免费无码| 亚洲亚洲免费| 日韩激情视频在线播放| heyzo亚洲| 日本aa在线| 亚洲女人****多毛耸耸8| 亚洲 日韩 国产第一区| 国内精品在线视频| 久久精品无码一区二区三区| 另类欧美小说| 香港一级纯黄大片| 99精品视频免费在线观看| 国产精品永久入口久久久| 超碰福利在线观看| 国产不卡视频一区| 粉嫩精品一区二区三区在线观看| 国产不卡精品视频| 岛国一区二区三区| 国产伦精品一区二区三区照片91| 成人激情四射网| 国产成人亚洲综合a∨婷婷图片 | 91嫩草精品| 欧美成人aa大片| 扒开伸进免费视频| 日韩av午夜| 亚洲图片欧美午夜| 97在线观看免费高| 欧美一区二区三区久久精品茉莉花| 久久福利视频网| 久久久久亚洲AV| 99精品国产福利在线观看免费| 97在线观看视频国产| 秋霞精品一区二区三区| 日韩高清在线不卡| 国产日韩专区在线| 精品人妻一区二区三区日产乱码 | 国产一区二区三区av在线| 免费观看成年人视频| 99久久精品一区| 日本一区二区视频| 精品麻豆一区二区三区| 亚洲美女偷拍久久| 久久免费视频3| 日韩成人精品一区二区三区| 7799精品视频| 少妇激情一区二区三区视频| 狠狠色丁香婷婷综合影院| x99av成人免费| 日本一区二区不卡在线| 日韩电影在线免费| 5566av亚洲| 青青久草在线| 亚洲乱码日产精品bd| 99热在线这里只有精品| 亚洲精品伊人| 日韩精品久久久久久福利| 国产成人一区二区在线观看| 欧美大片专区| 国产精品夫妻激情| 亚洲国产精品一| 亚洲国产成人午夜在线一区| 亚洲 欧美 综合 另类 中字| 暖暖成人免费视频| 亚洲一级片在线观看| 国产裸体舞一区二区三区| 91麻豆精品国产综合久久久| 亚洲国产欧美一区二区丝袜黑人| av在线播放中文字幕| 在线播放日韩| 成人激情视频在线| 欧美91精品久久久久国产性生爱| 亚洲精品视频在线看| 国产成人av影视| 成人高潮视频| 久久久精品国产网站| 亚洲欧美一区二区三区在线观看| 国产电影精品久久禁18| 翔田千里亚洲一二三区| 中文字幕乱码中文乱码51精品| 欧美一区二区不卡视频| 国产主播av在线| 国产农村妇女精品一区二区| 3d动漫精品啪啪一区二区三区免费 | 视频在线观看一区| 国产伦精品一区二区三区视频黑人 | 日韩美香港a一级毛片| 亚洲男人7777| 欧美一级片免费在线观看| 国产精品99久久久| 国产a级片免费看| 成人免费黄色| 中文字幕久久亚洲| 日韩黄色片网站| 91亚洲精品久久久蜜桃| 亚洲精品蜜桃久久久久久| 久久中文字幕一区二区| 久久精品久久久久| 一级黄色片免费| 国产精品久久久久久久久图文区| 欧美日韩在线不卡视频| 天海翼精品一区二区三区| 韩国日本不卡在线| 日本人妻丰满熟妇久久久久久| 亚洲精品乱码久久久久| 一区二区三区国产好的精华液| 91日韩欧美| 国产精品久久在线观看| 成人在线免费观看| 欧美在线你懂得| 日本黄色激情视频| 久久超碰97人人做人人爱| 亚洲精品一区二区三区蜜桃久| 久久青青视频| 尤物yw午夜国产精品视频| 91黑人精品一区二区三区| 国产清纯在线一区二区www| 亚洲视频在线观看一区二区三区| 九色精品国产蝌蚪| 国产精品久久综合av爱欲tv| 午夜毛片在线| 91麻豆精品国产| avove在线播放| 成人不卡免费av| 日本精品一区二区三区四区| 深爱激情综合网| 国产精品中文久久久久久久| 男人的天堂在线视频免费观看| 欧美高清视频不卡网| 欧产日产国产v| heyzo一本久久综合| av观看免费在线| 99精品视频在线观看播放| 97超碰人人看人人| 桃色av一区二区| 在线观看免费高清视频97| 一区二区的视频| 亚洲综合色视频| v8888av| 免费在线观看一区二区三区| 超碰成人在线免费观看| 波多野结衣在线一区二区| 日韩av免费在线| 欧美高清视频| 精品99久久久久久| 久久久久久亚洲av无码专区| 亚洲色图欧美偷拍| 日韩av加勒比| 性欧美xxxx大乳国产app| 一区二区三区四区视频在线观看 | 欧美精品乱码视频一二专区| 91在线你懂得| 特黄视频免费观看| 国产一级一区二区| 手机福利在线视频| 精品在线99| 99久久伊人精品影院| 女生影院久久| 国产69精品99久久久久久宅男| 国产小视频在线| 日韩欧美国产一区在线观看| 无码人妻丰满熟妇精品区| 亚洲男同性恋视频| 一区二区伦理片| 成人国产一区二区三区精品| 一区二区三区视频在线观看免费| 亚洲一本视频| 最新国产精品久久| 亚洲理论电影片| 国产精品二区二区三区| 国产欧美自拍| 欧美在线视频一区二区| 四虎影视成人| 色婷婷综合久久久久| 深夜福利视频在线观看| 日韩免费一区二区| 亚洲天堂999| 色中色一区二区| 日韩精品一区二区av| 亚洲欧美视频在线观看| 无码人妻丰满熟妇啪啪欧美| 99这里只有精品| 亚洲妇女无套内射精| 精品一区二区三区在线播放视频 | 国产亚洲精品成人av久久ww| 秋霞网一区二区| 日韩一区二区不卡| 国产精品伦理一区| 欧美日韩高清影院| 国产精品第6页| 欧美性猛交99久久久久99按摩| 久久精品视频9| 一区二区三区中文字幕| 娇小11一12╳yⅹ╳毛片| 国产欧美视频在线观看| 91网站免费入口| 久久日韩精品一区二区五区| 国产人妻黑人一区二区三区| 国产suv一区二区三区88区| 黄色小视频免费网站| 麻豆视频一区二区| 色播五月综合网| 免费的成人av| 亚洲欧美日本一区二区三区| 日韩av电影天堂| 日韩av片网站| 精品一区二区三区在线播放| 爱爱爱爱免费视频| 精品无人码麻豆乱码1区2区 | 国产精品乱码久久久| 欧美日韩黄色一区二区| 中文字幕一区二区免费| 欧美日韩精品综合在线| 在线视频 91| 69av一区二区三区| wwwav网站| 亚洲国产精品va在线看黑人动漫| 人妻一区二区三区四区| 亚洲黄色免费三级| 日本在线丨区| 亚洲午夜未删减在线观看| 在线激情免费视频| 蜜臀久久99精品久久久无需会员| 日本电影在线观看| 97久久精品国产| 校园春色亚洲色图| 国产免费一区视频观看免费 | 色播亚洲婷婷| 天天综合网91| www.日本少妇| 久久影院亚洲| 久久精品视频在线观看免费| 国产69精品久久99不卡| 噜噜噜在线视频| 国产欧美日本一区二区三区| 69夜色精品国产69乱| 亚洲一区二区欧美| 日本视频免费观看| 制服丝袜av成人在线看| 日本高清视频免费观看| 亚洲欧洲美洲在线综合| 国产视频中文字幕在线观看| 欧美激情国产高清| 欧洲av不卡| 亚洲xxxxx| 久久91精品| 99久re热视频精品98| 亚洲免费婷婷| 奇米777在线| 久久婷婷综合激情| 波多野结衣亚洲一区二区| 欧美日韩激情美女| 国产免费黄色大片| 国产偷亚洲偷欧美偷精品| 快射视频在线观看| 欧美中文在线字幕| 国产欧美视频在线| 欧美亚洲免费在线| 欧美黄在线观看| 男女男精品视频站| 99精品欧美一区二区三区小说| 国产精品www爽爽爽| 午夜欧美视频在线观看 | а√天堂资源国产精品| 国产经品一区二区| 91综合在线| 黄色三级视频片| av在线一区二区| 精品一区在线观看视频| 在线观看视频一区| 香蕉久久一区二区三区| 免费91麻豆精品国产自产在线观看| 外国成人直播| 久久99久久精品国产| 午夜欧美精品久久久久久久| 五月婷婷狠狠操| 26uuu另类欧美亚洲曰本| 免费一级片在线观看| 6080午夜不卡| av在线电影免费观看| 日本成人免费在线| 久草精品视频| 男人天堂a在线| 国产一区二区视频在线播放| 少妇愉情理伦三级| 色狠狠一区二区| 欧美孕妇性xxxⅹ精品hd| 国外视频精品毛片| 成人盗摄视频| 久久久久久av无码免费网站下载| 蜜臀精品一区二区三区在线观看 | aaa一级黄色片| 国产精品久久久久一区| 日韩av免费播放| 亚洲视频电影图片偷拍一区| 澳门成人av网| 蜜桃导航-精品导航| 国产农村妇女精品一二区| jizz日本免费| 欧美丝袜美女中出在线| 五月激情婷婷网| 国产91精品久| 九一精品国产| 少妇一级淫免费播放| 一色屋精品亚洲香蕉网站| 亚洲综合免费视频| 精品国产欧美成人夜夜嗨| 99精品视频在线免费播放| 综合久久国产| 国产91精品露脸国语对白| 精品肉丝脚一区二区三区| 精品国一区二区三区| 国产欧洲在线| 午夜精品久久久久久久白皮肤| 日韩成人在线看| 又大又硬又爽免费视频| 成人黄色网址在线观看| 中国一级特黄毛片| 亚洲一级黄色av| 精品福利在线| 欧美与动交zoz0z| 成人av在线播放网站| 国产成人在线视频观看| 亚洲欧洲免费视频| 日韩精品第二页| 日本大片免费看| 91蜜桃免费观看视频| 午夜视频网站在线观看| 久久久av一区| 男人的天堂久久| 天天操天天摸天天爽| 亚洲欧洲性图库| 蜜臀av午夜精品| 国产成人精品999| 68国产成人综合久久精品| 亚洲av成人片无码| 在线观看中文字幕不卡| jizz性欧美| 欧美精品v日韩精品v国产精品| 免费在线观看日韩欧美| 毛片aaaaa| 国产一区二区三区在线视频| 99精品视频在线免费播放| 国内性生活视频| 亚洲特黄一级片| 四虎精品成人免费网站| 国产美女主播一区| 一本色道久久综合亚洲精品不卡| 精品日韩在线视频| 精品国产精品网麻豆系列| 日本一区二区三区视频在线| av在线免费观看国产| 久久先锋资源网| 国产av无码专区亚洲av| 国产不卡精品视男人的天堂 | 玩弄中年熟妇正在播放| 中文av一区特黄| 亚洲人午夜射精精品日韩| 成人欧美在线观看|