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

使用Cygwin在Windows上進行Unix開發

原創
開發 開發工具
本文主要向讀者介紹如何在Cygwin下進行程序開發。文章將首先介紹使用GCC開發控制臺模式的應用程序和GUI模式的應用程序,然后闡述在Cygwin下如何調試程序,隨后詳細講解在Cygwin下動態鏈接庫的構建和使用,最后介紹資源文件的有關知識。

一、Cygwin簡介

Cygwin是許多自由軟件的集合,最初由Cygnus Solutions開發,用于各種版本的Microsoft Windows上,運行UNIX類系統。Cygwin的主要目的是通過重新編譯,將POSIX系統(例如Linux、BSD,以及其他Unix系統)上的軟件移植到Windows上。Cygwin包括了一套庫,該庫在Win32系統下實現了POSIX系統調用的API;還有一套GNU開發工具集(比如GCC、GDB),這樣可以進行簡單的軟件開發;還有一些UNIX系統下的常見程序。2001年,新增了X Window System。另外還有一個名為MinGW的庫,可以跟Windows本地的MSVCRT庫(Windows API)一起工作。

二、在Cygwin中使用GCC

下面我們開始介紹如何在Cygwin中使用GCC開發控制臺模式的應用程序和GUI模式的應用程序。

控制臺模式的應用程序

使用gcc編譯程序跟在UNIX操作系統之下非常相似,關于gcc的標準用法和選項可以參考其用戶手冊。下面是一個簡單的示例:

例1:利用GCC構建Hello World

C:\> gcc hello.c -o hello.exe
C:\> hello.exe
Hello, World

C:\>

GUI模式的應用程序

Cygwin使我們可以編譯出能夠訪問所有標準Windows32位API的程序,其中包括定義在微軟公司和暢銷出版物中的那些GUI函數。然而,使用GNU工具跟使用微軟公司的工具構建應用程序的過程會稍有不同。絕大多數情況下,根本無需修改源代碼。然而,您應該刪除函數中的全部__export屬性,并將其換成下面的內容:

int foo (int) __attribute__ ((__dllexport__));

int
foo (int i)

Cygwin Makefile與其他任何類UNIX的Makefile非常類似,唯一區別在于我們需要使用gcc -mwindows來把程序連接成一個圖形用戶界面應用程序,而非命令行應用程序。下面是一個例子:

myapp.exe : myapp.o myapp.res
	gcc -mwindows myapp.o myapp.res -o $@

myapp.res : myapp.rc resource.h
	windres $< -O coff -o $@

注意,通過利用windres可把Windows資源編譯成一個COFF格式的.res文件,這樣就能把您需要的所有位圖、圖標及其他資源放到一個目標文件中。 正常情況下,如果您省略了“-O coff”的話,它就會創建一個Windows格式的文件,但是我們只能鏈接COFF格式的目標文件。所以,我們吩咐windres生成COFF格式的目標文件。我們的大部分示例都假定你的鏈接程序能夠直接處理Windows的資源文件,我們保留.res的命名約定。關于windres的更多信息請參見有關手冊。下面是一個GUI模式入門之用的“Hello ,World !”程序:

/*-------------------------------------------------*/
/* hellogui.c :一個圖形模式的hello world程序                    */
/*編譯命令:gcc -mwindows hellogui.c -o hellogui.exe */
/*-------------------------------------------------*/
#include <windows.h>

char glpszText[1024];

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance, 
		HINSTANCE hPrevInstance,
		LPSTR lpCmdLine,
		int nCmdShow)
{
	sprintf(glpszText, 
		"Hello World\nGetCommandLine(): [%s]\n"
		"WinMain lpCmdLine: [%s]\n",
		lpCmdLine, GetCommandLine() );

	WNDCLASSEX wcex; 
 
	wcex.cbSize = sizeof(wcex);
	wcex.style = CS_HREDRAW | CS_VREDRAW;
	wcex.lpfnWndProc = WndProc;
	wcex.cbClsExtra = 0;
	wcex.cbWndExtra = 0;
	wcex.hInstance = hInstance;
	wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
	wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
	wcex.lpszMenuName = NULL;
	wcex.lpszClassName = "HELLO";
	wcex.hIconSm = NULL;

	if (!RegisterClassEx(&wcex))
		return FALSE; 

	HWND hWnd;
	hWnd = CreateWindow("HELLO", "Hello", WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

	if (!hWnd)
		return FALSE;

	ShowWindow(hWnd, nCmdShow);
	UpdateWindow(hWnd);

	MSG msg;
	while (GetMessage(&msg, NULL, 0, 0)) 
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	PAINTSTRUCT ps;
	HDC hdc;
	
	switch (message) 
	{
		case WM_PAINT:
			hdc = BeginPaint(hWnd, &ps);
			RECT rt;
			GetClientRect(hWnd, &rt);
			DrawText(hdc, glpszText, strlen(glpszText), &rt, DT_TOP | DT_LEFT);
			EndPaint(hWnd, &ps);
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}

#p#

三、調試Cygwin程序

如果您的程序無法正常運行,通常情況下是由于其中的bug所致,因為程序本身存在錯誤會導致出乎意料的結果甚至崩潰。借助于一種稱為調試器的專用工具可以使得查找和修正錯誤變得更簡單一些。就Cygwin而論,其調試器是GDB,即GNU debugger的縮寫。這個工具使我們可以在一個受控環境中運行我們的程序,在這個環境中,我們可以考察程序運行過程中或其崩潰之后的狀態。有時候,程序崩潰時操作系統就會把程序當掉時的內存內容轉儲出來,現在通常是寫在一個叫core 的file 里面。在Cygwin中,這些文件通常是些常規的文本文件,所以無法直接為GDB所用。

在調試程序之前,需要對需要進行調試的程序做一些準備工作,具體來說,就是在把源程序編譯成目標程序的時候為所有標志添加-g。

例2:利用-g進行編譯

$ gcc -g -O2 -c myapp.c
$ gcc -g myapp.c -o myapp

這樣就會在生產的目標文件中加入額外的信息來告知調試器有關行號、變量名及其他有用的信息,不過這會使得目標文件的尺寸驟增。這些額外的符號和調試信息提供了原始代碼的足夠信息,所以調試器在調試它們的時候會更加容易。

在Windows版本的GNUPro中,GDB具有一個全功能的圖形界面。在Cygwin的Net發行版本中,GDB只能在命令行下使用。要調用GDB,只需在命令提示符下輸入gdb myapp.exe即可。這時會顯示一些您自己的有關文本信息,之后GDB會提示您繼續輸入其他命令。只要看到這個提示符,就表示gdb正在等待您輸入命令,如果您鍵入help命令,那么就會收到您可以使用的各個命令的幫助信息,當然您也可以通過閱讀“GDB User's Manual”來全面細致地了解gdb及其使用方法。

如果你的程序崩潰了,并且您想弄清它為什么崩潰的話,最好的辦法是鍵入run來運行您的程序。等它崩潰之后,您可以鍵入where命令來看看它在哪里崩潰的,或者輸入info locals命令來查看所有局部變量的值。此外,如果鍵入print命令的話,我們還可以檢查單獨的變量以及指向這些變量的指針。

如果您的程序做了出乎意料之外的事情,那么可以使用break命令讓gdb在程序到達指定的函數或者行號的時候停止程序的運行:

例3:gdb中的中斷命令

(gdb) break my_function
(gdb) break 47

現在,當我們輸入run命令之后,我們的程序會在斷點處停下來,這樣我們就能使用其他的gdb命令來查看程序當時的狀態、修改變量以及單步調試程序的各個語句。需要注意的是,我們可以給run命令附加其他的參數,以便向我們的程序提供相應的命令行參數。例如,下面的兩條命令的效果是一樣的:

例4:利用命令行參數進行調試

$ myprog -t foo --queue 47

$ gdb myprog
(gdb) run -t foo --queue 47

#p#

四、動態鏈接庫的構建和使用

動態鏈接庫(DLL)是指在程序運行時而非編譯時鏈接進我們的程序的那些庫。一個動態鏈接庫有三部分組成:

◆導出表

◆代碼和數據

◆導入庫

代碼和數據是我們需要編寫的函數、變量等內容,它們將被合并到一起放入dll,你可以簡單的理解成建立了一個碩大的目標文件。但是它們卻不會放入您的.exe文件。導出表含有動態庫為其他程序提供給的函數和變量,可以簡單的理解成這是一個“全局”符號表,除此之外的內容都是不可見的。通常情況下,我們需要利用文本編輯程序手工建立該表,不過我們也可以利用代碼中的函數表來自動生成這個導出表。dlltool程序可以根據導出符號組成的文本文件來創建動態鏈接庫的導出部分。輸入庫類似于類UNIX系統中的.a程序庫,但是它只包含通知操作系統應用程序跟dll交互方式(即導入方法)所需信息。這些信息可以鏈接到我們的.exe程序中。當然這些信息也可以利用dlltool程序來建立。

構建動態鏈接庫

我們這里將簡單介紹如何利用gcc來建立動態鏈接庫,有關gcc建立動態庫的更詳盡的選項,可以參考gcc的有關文檔。首先提供一個簡單的示例來演示建立一個動態鏈接庫的過程。本例中,我們的程序(myprog.exe) 由單個源文件myprog.c組成,而動態鏈接庫(mydll.dll)的內容則由稱為mydll.c的文件得到。

幸運的是,在最新的gcc和binutils的幫助下,建立動態鏈接庫的過程非常簡單。下面我們介紹編譯mydll.c的具體過程。

#include <stdio.h>

int
hello()
{
  printf ("Hello World!\n");
}  

首先將mydll.c編譯為目標代碼,命令如下所示:

gcc -c mydll.c

然后,告訴gcc我們要構建一個共享庫,命令如下所示:

gcc -shared -o mydll.dll mydll.o

就這么簡單!現在,我們將這個動態鏈接庫鏈接到一個簡單程序上,程序代碼如下所示:

int 
main ()
{
  hello ();
}

現在我們用下列命令來連接動態鏈接庫,命令如下所示:

gcc -o myprog myprog.c -L./ -lmydll

然而,如果想要把動態鏈接庫做成一個導出庫的話,可以使用下列語法:

gcc -shared -o cyg${module}.dll \

-Wl,--out-implib=lib${module}.dll.a \

-Wl,--export-all-symbols \

-Wl,--enable-auto-import \

-Wl,--whole-archive ${old_libs} \

-Wl,--no-whole-archive ${dependency_libs}

我們的程序庫的名稱是${module},動態鏈接庫的前綴為cyg,輸入庫的前綴為lib。Cygwin的動態鏈接庫使用cyg作為前綴,以作為本地Windows的MinGW動態鏈接庫的區別。${old_libs}是我們全部的目標文件,被捆綁成靜態庫或者一個目標文件;${dependency_libs}是需要鏈接的靜態庫,如“-lpng -lz -L/usr/local/special -lmyspeciallib”。

鏈接動態鏈接庫

假設您已有一個動態鏈接庫,并需要建立一個與Cygwin兼容的輸入庫,如果您有源代碼的話,可以參考本文的構建動態鏈接庫部分。如果您沒有源代碼或者沒有可用的輸入庫,那么您可以在bash中創建一個.def 文件,命令如下所示:

echo EXPORTS > foo.def

nm foo.dll | grep ' T _' | sed 's/.* T _//' >> foo.def

只有動態鏈接庫沒有去除有關符號信息的情況下上述命令才能正常工作,否則,就會出現“No symbols in foo.dll”錯誤信息。一旦得到了.def文件,就可以從中創建一個輸入庫,命令如下所示:

dlltool --def foo.def --dllname foo.dll --output-lib foo.a

#p#

五、定義Windows資源

Windres能夠讀取Windows資源文件(*.rc),并把它轉換成res格式文件或者coff格式文件。輸入文件的語法和語義的同其他任何資源編譯器沒有任何區別,所以詳情可參閱任何有關描述Windows資源格式的文獻。此外,windres程序本身在Binutils手冊中也有詳盡的說明。下面是一個使用windres的例子:

myapp.exe : myapp.o myapp.res
	gcc -mwindows myapp.o myapp.res -o $@

myapp.res : myapp.rc resource.h
	windres $< -O coff -o $@

六、結束語

Cygwin是許多自由軟件的集合,用于各種版本的Microsoft Windows上運行UNIX類系統。Cygwin的主要目的是通過重新編譯,將POSIX系統上的軟件移植到Windows上。Cygwin包括了一套庫,該庫在Win32系統下實現了POSIX系統調用的API;還有一套GNU開發工具集(比如GCC、GDB),這樣可以進行簡單的軟件開發;還有一些UNIX系統下的常見程序。而本文則為讀者介紹了如何在Cygwin下進行程序開發。我們首先介紹使用GCC開發控制臺模式的應用程序和GUI模式的應用程序,然后闡述在Cygwin下如何調試程序,隨后詳細講解在Cygwin下動態鏈接庫的構建和使用,最后介紹資源文件的有關知識。

【編輯推薦】

  1. Linux編程起步 GCC基本用法
  2. 詳解GCC的下載和安裝
  3. 從VC++到GCC移植:談兩者語法差異
責任編輯:楊鵬飛 來源: 51CTO
相關推薦

2020-03-07 18:51:11

EclipseFedoraPHP

2022-02-09 15:29:35

Java組件編程語言

2012-11-23 14:33:06

IBMdW

2015-07-23 14:09:15

CygwinWindowsLinux

2023-11-30 15:56:54

大型語言模型人工智能

2010-05-04 08:52:13

Unix系統

2010-02-24 15:19:38

ibmdwLinux

2021-02-16 23:17:47

Windows 10Windows微軟

2010-12-09 09:12:28

2010-11-03 15:27:39

OpenLDAPWindowsUnix系統

2010-04-30 18:38:45

Unix系統

2009-04-14 18:50:55

Nehalem惠普intel

2020-02-18 09:45:44

云計算云平臺IT

2009-07-16 14:22:02

Windows Emb

2023-06-20 08:00:00

2025-04-23 15:49:37

2010-04-29 17:51:40

Unix工具

2011-07-19 14:11:07

Windows iPhone SDK

2010-07-02 12:58:39

Meego開發

2010-04-16 16:29:57

Unix操作系統
點贊
收藏

51CTO技術棧公眾號

欧美三级日韩三级| www.性欧美| 成年无码av片在线| 精品少妇人妻av一区二区三区| 欧美日韩在线观看首页| 国产日产精品一区| 99re在线视频上| 麻豆精品久久久久久久99蜜桃| 成人av动漫在线观看| 日韩西西人体444www| 国产裸体免费无遮挡| 麻豆91在线| 99精品国产91久久久久久 | 免费成人动漫| 亚洲欧美在线观看| 免费成人看片网址| 国产成人免费看一级大黄| 日韩精品免费专区| 久久频这里精品99香蕉| 欧美做受高潮6| 成人动态视频| 91精品国产一区二区三区| 久草资源站在线观看| 91麻豆免费在线视频| 国产三级精品视频| 精品久久蜜桃| 精品久久人妻av中文字幕| 日本成人中文字幕在线视频| 26uuu另类亚洲欧美日本老年| 加勒比婷婷色综合久久| 欧美日韩水蜜桃| 亚洲精品一区中文| 国产69视频在线观看| 四虎国产精品永久在线国在线| 精品免费在线视频| www.黄色网址.com| 欧美激情二区| 国产精品久久久久久久久搜平片| 欧美理论一区二区| 性xxxx视频| 福利91精品一区二区三区| 成人免费网站在线| 一级做a爱片久久毛片| 日韩高清不卡一区| 欧美最猛黑人xxxx黑人猛叫黄| 精品无码一区二区三区电影桃花 | 91麻豆免费看| 狠狠色综合色区| 高h震动喷水双性1v1| 国产成人精品网址| 91一区二区三区| 99热精品在线播放| 国产毛片精品视频| 福利视频一区二区三区| www.色播.com| 国产精品18久久久久久久久久久久 | 性xxxxfreexxxxx欧美丶| 精品国产福利在线| 日本日本19xxxⅹhd乱影响| 交100部在线观看| 欧美性猛交xxxx免费看久久久| 欧美亚洲精品一区二区| 草草视频在线观看| 日本韩国精品在线| 韩国视频一区二区三区| 亚瑟国产精品| 欧美成人video| 亚洲熟女一区二区| 免费看成人吃奶视频在线| 亚洲乱码av中文一区二区| 免费看污片网站| 怕怕欧美视频免费大全| 中文字幕精品av| 国产成人av免费在线观看| 综合久久精品| 欧美极品少妇xxxxⅹ裸体艺术| 国产精品99精品无码视| 国产精品久久777777毛茸茸 | 91精品网站在线观看| 欧美一区二区三区精品| 久久性爱视频网站| 国产日韩欧美一区二区三区| 色爱av美腿丝袜综合粉嫩av| 青青草成人免费| 国产欧美日韩一区二区三区在线| 国产成人一区二| 一区二区三区www污污污网站| 国产黄色精品网站| 欧美精品一区二区视频| 黄色av电影在线播放| 婷婷六月综合亚洲| 国产精品久久久毛片| 日本成人手机在线| 国产网站欧美日韩免费精品在线观看| 亚洲图片另类小说| 欧美一区网站| 国产精品99久久久久久www | 国产精品1024久久| 欧美日韩亚洲在线| av网址在线播放| 色妹子一区二区| 日本r级电影在线观看| 中文有码一区| 欧美国产日产韩国视频| 波多野结衣一区二区三区四区| 激情综合五月婷婷| 欧美精品久久久| 免费观看久久久久| 色婷婷亚洲婷婷| 无码人妻丰满熟妇区毛片蜜桃精品| 久久99免费视频| 欧美精品www| 国产一区二区麻豆| 久久久国产精品麻豆| 日韩欧美精品免费| 成人a在线观看高清电影| 精品成人一区二区三区四区| 欧美一区二区三区粗大| 在线视频精品| 97久久人人超碰caoprom欧美| av在线中文| 欧美性xxxx在线播放| 日本精品一二三区| 在线成人直播| 国产色视频一区| 都市激情在线视频| 欧美日韩亚洲精品一区二区三区| 国产成人av片| 91精品一区二区三区综合在线爱| 不卡精品视频| 在线观看视频一区二区| 四季av综合网站| 午夜亚洲福利| 亚洲曰本av电影| 欧美jizz18性欧美| 欧美性一二三区| 魔女鞋交玉足榨精调教| 一级成人国产| 国内一区二区三区在线视频| 国产蜜臀一区二区打屁股调教| 欧美久久久久久久久| 欧美老女人性生活视频| 日韩影院免费视频| 日韩av高清在线播放| 中文一区一区三区高中清不卡免费| 欧美精品一区二区三区很污很色的| 成人免费视频网站入口::| 老鸭窝一区二区久久精品| 日日夜夜精品网站| 成人黄色免费网站| 久久精品国产一区二区电影| 国产精品爽爽久久| 1024成人网| 18深夜在线观看免费视频| 欧美日本二区| 国产精品一区二区不卡视频| av最新在线| 亚洲美女精品久久| 成年人视频免费| 国产精品天干天干在线综合| 在线观看国产一级片| 羞羞答答成人影院www| 96pao国产成视频永久免费| 亚洲区欧洲区| 亚洲第一精品自拍| 国产黄网在线观看| 国产精品蜜臀av| 午夜免费视频网站| 中文字幕网址在线| 麻豆精品国产91久久久久久 | 91影院成人| 成人免费xxxxx在线观看| 欧美videosex性极品hd| 精品香蕉在线观看视频一| 波多野结衣黄色| ...xxx性欧美| 欧美肉大捧一进一出免费视频| 国产麻豆综合| 亚洲一卡二卡三卡四卡无卡网站在线看| 日韩美女在线| 国内揄拍国内精品| 国产乱视频在线观看| 91精品国产色综合久久久蜜香臀| 久久综合久久鬼| 国产亚洲精品免费| 中文字幕欧美视频| 久久不射2019中文字幕| 影音先锋在线亚洲| 国产毛片精品| 国产精品视频yy9099| 羞羞视频在线观看不卡| 亚洲免费av电影| a天堂视频在线| 欧美日韩亚洲系列| 亚洲不卡在线播放| 26uuu另类欧美| 最新av免费在线观看| 99精品视频免费观看| 伊人情人网综合| 里番精品3d一二三区| 91久久精品国产91久久| 亚洲一二三四| 欧美高清性猛交| 岛国大片在线观看| 亚洲国产欧美一区二区三区久久| 亚洲视屏在线观看| 五月天一区二区| 91日韩中文字幕| 国产欧美一区二区在线| 国产一级免费片| 国产精品中文字幕日韩精品 | 亚洲美女在线看| 亚洲成人77777| 欧美日韩综合在线| 91午夜精品亚洲一区二区三区| 亚洲综合一区二区精品导航| 91制片厂在线| 国产婷婷精品av在线| www.555国产精品免费| 韩国理伦片一区二区三区在线播放| 成人免费在线小视频| 欧美日韩综合| ijzzijzzij亚洲大全| 首页国产精品| 日韩欧美激情一区二区| 色橹橹欧美在线观看视频高清 | 午夜免费高清视频| 久久综合导航| 18禁男女爽爽爽午夜网站免费| 国产精品多人| 国产精品久久久影院| 羞羞色午夜精品一区二区三区| 亚洲国产一区在线| 国产欧美久久一区二区三区| 欧美一区二区三区电影在线观看| 精品五月天堂| 国产日韩欧美二区| youjizzjizz亚洲| 国产a一区二区| 亚洲不卡在线| 国产精品传媒毛片三区| 中文字幕亚洲在线观看| 91一区二区三区| 亚洲精品a区| 成人自拍网站| youjizz亚洲| 精品亚洲一区二区三区四区五区高| 澳门久久精品| 久久99精品久久久久久水蜜桃| 国产精品一区二区三区美女| 国产专区一区二区三区| 久久午夜影院| 欧美人xxxxx| 日韩av在线播放网址| 伊人久久99| 综合国产在线| 霍思燕三级露全乳照| 国产精品一国产精品k频道56| av片中文字幕| 美女视频一区二区| 男人女人拔萝卜视频| 成人三级在线视频| 大黑人交xxx极品hd| 国产性做久久久久久| 国产一二三av| 一区二区三区日韩欧美| 国产精选第一页| 欧美性精品220| 在线黄色av网站| 日韩视频一区二区三区在线播放 | 午夜毛片在线观看| 色婷婷精品久久二区二区蜜臂av| 欧美激情一区二区三区免费观看 | 韩国一区二区在线播放| 懂色av中文字幕一区二区三区 | 男女曰b免费视频| 轻轻草成人在线| 欧美日韩一区二区区| 99久久精品费精品国产一区二区| 国产三级av在线播放| 亚洲麻豆国产自偷在线| 天天操天天干视频| 欧美日韩精品欧美日韩精品| 亚洲爱情岛论坛永久| 亚洲天堂av在线免费观看| 蜜桃视频网站在线| 91精品国产免费久久久久久 | 欧美日韩不卡一区| 丰满人妻一区二区三区免费| 亚洲欧美中文字幕| 亚洲精品白浆| 国产精品69久久| 18国产精品| 亚洲免费久久| 亚洲一区网站| 99视频在线观看视频| 久久这里只有精品首页| 欧美国产日韩综合| 欧美视频三区在线播放| 隣の若妻さん波多野结衣| 中文字幕日韩电影| 黄色软件视频在线观看| 成人情趣片在线观看免费| 日本午夜精品| 日韩 欧美 自拍| 麻豆精品91| 国模私拍在线观看| 亚洲女性喷水在线观看一区| 日韩一级片中文字幕| 亚洲第一中文字幕| caopo在线| 国产日本欧美一区| 国产探花一区二区| 每日在线观看av| 国产一区二区三区在线观看精品 | 亚洲精品成人在线播放| 国产亚洲一区二区三区四区| 国产一级性生活| 欧美一区二区三级| 麻豆视频在线免费观看| 国产精品女人久久久久久| 日韩母乳在线| 久久99中文字幕| 国产成人欧美日韩在线电影| 精品在线观看一区| 日本韩国精品一区二区在线观看| 天天干天天摸天天操| 欧美激情乱人伦一区| 久久三级中文| 中文字幕在线亚洲三区| 日本在线播放一区二区三区| 久久精品成人av| 精品日韩视频在线观看| 蜜臀久久99精品久久久| 久久久久久中文字幕| 亚洲一区二区三区中文字幕在线观看| 一区二区三区四区欧美日韩| 免费成人在线影院| 手机看片国产日韩| 欧美三级三级三级爽爽爽| 992tv免费直播在线观看| 国产91在线播放九色快色| 亚洲精品动态| 黑森林福利视频导航| 久久久久久黄色| 午夜精品一区二| 亚洲亚裔videos黑人hd| 色豆豆成人网| 亚洲一区二区三区午夜| 久久精品国产精品亚洲红杏| 国产小视频你懂的| 欧美一三区三区四区免费在线看 | 欧洲视频在线免费观看| 57pao成人国产永久免费| 亚州综合一区| 麻豆av免费在线| 国产色爱av资源综合区| 一区精品在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 国产美女亚洲精品7777| 精品无码av无码免费专区| 成人午夜免费电影| 国产三级av片| 亚洲一区二区精品| av日韩久久| 日本阿v视频在线观看| 99这里都是精品| 波多野结衣一区二区三区在线| 最近2019中文字幕一页二页| 亚洲伦理网站| 日b视频免费观看| 972aa.com艺术欧美| 天天综合久久综合| 久久在线精品视频| 精品嫩草影院| 91av在线免费播放| 亚洲欧美日韩成人高清在线一区| 日韩av手机在线观看| 一本色道久久综合亚洲精品酒店 | 夜夜添无码一区二区三区| 2024国产精品| 亚洲熟妇无码久久精品| 欧美黑人狂野猛交老妇| 杨幂一区二区三区免费看视频| 欧美成年人视频在线观看| 亚洲美女免费视频| 久青草国产在线| 91丝袜美腿美女视频网站| 亚洲精品黄色| www中文在线| 亚洲国产精品推荐| 日韩黄色碟片| 国产a级一级片| 亚洲激情图片qvod| 精品99又大又爽又硬少妇毛片| 91九色偷拍| 青草国产精品久久久久久| 九热这里只有精品| 久久精品国产精品亚洲| 亚洲毛片免费看|