日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Scons使用入门

發布時間:2023/12/20 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scons使用入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.簡單編譯


? ? 源文件:hello.cpp

#include<iostream> using namespace std;int main() {cout << "Hello, World!" << endl;return 0; }


?用SCons編譯它,需要在一個名為SConstruct的文件:

Program('hello.cpp')


? ? 這個短小的配置文件給了SCons兩條信息:你想編譯什么(一個可執行程序),你編譯的輸入文件(hello.cpp)。Program是一個編譯器方法(builder_method),一個Python調用告訴SCons,你想編譯一個可執行程序。 Program編譯方法是SCons提供的許多編譯方法中一個。另一個是Object編譯方法,告訴SCons從指定的源文件編譯出一個目標文件,在SConstruct中為:

Object('hello.cpp')


? ? 使用SCons,編譯之后想要清除不需要增加特殊的命令或目標名。你調用SCons的時候,使用-c或--clean選項,SCons就會刪除合適的編譯產生的文件。?

$ scons ? ? ? ? ? ? ? //編譯源文件(自動讀取SConstruct中的內容) $ scons -c ? ? ? ? ? ?//清除scons編譯的文件


? ? 當你調用Program編譯方法的的時候,它編譯出來的程序名字是和源文件名是一樣的。下面的從hello.cpp源文件編譯一個可執行程序的調用將會在POSIX系統里編譯出一個名為hello的可執行程序,在windows系統里會編譯出一個名為hello.exe的可執行程序。如果你想編譯出來的程序的名字與源文件名字不一樣,你只需要在源文件名的左邊聲明一個目標文件的名字就可以了:

Program('new_hello','hello.cpp')


2. SConstruct文件

SConstruct文件實際上就是一個Python腳本。你可以在你的SConstruct文件中使用Python的注釋:
# Arrange to build the "hello" program.

Program('hello.cpp') ? ? ? ? ? ?#"hello.cpp" is the source file.


重要的一點是SConstruct文件并不完全像一個正常的Python腳本那樣工作,其工作方式更像一個Makefile,那就是在SConstruct文件中SCons函數被調用的順序并不影響SCons你實際想編譯程序和目標文件的順序。換句話說,當你調用Program方法,你并不是告訴SCons在調用這個方法的同時馬上就編譯這個程序,而是告訴SCons你想編譯這個程序:

print "Calling Program('hello.c')" Program('hello.c') print "Calling Program('goodbye.c')" Program('goodbye.c') print "Finished calling Program()"


指定默認的目標文件

Default(targets) env.Default(targets)


? ? ?指定了默認的target,如果在命令行中沒有顯示指定target,那么scons將編譯默認的target,多次調用Default是合法的,實例:

Default('foo', 'bar', 'baz') env.Default(['a', 'b', 'c']) hello = env.Program('hello', 'hello.c') env.Default(hello)


? ? 如果在Default中傳入參數None,那么將會清楚所有默認的target:

Default(None)


3. 編譯多個源文件


通常情況下,你需要使用多個輸入源文件編譯一個程序。在SCons里,只需要就多個源文件放到一個Python列表中就行了,如下所示:

Program('program',['prog.cpp','file1.cpp','file2.cpp'])


?你可以使用Glob函數,定義一個匹配規則來指定源文件列表,比如*,?以及[abc]等標準的shell模式。如下所示:

Program('program', Glob('*.cpp'))


為了更容易處理文件名長列表,SCons提供了一個Split函數,這個Split函數可以將一個用引號引起來,并且以空格或其他空白字符分隔開的字符串分割成一個文件名列表,示例如下:

Program('program', Split('main.cpp ?file1.cpp ?file2.cpp'))或者:src_files=Split('main.cpp ?file1.cpp ?file2.cpp') Program('program', src_files)


SCons允許使用Python關鍵字參數來標識輸出文件和輸入文件。輸出文件是target,輸入文件是source,示例如下:

src_files=Split('main.cpp ?file1.cpp ?file2.cpp') Program(target='program', source=src_files)或者:src_files=Split('main.cpp ?file1.cpp ?file2.cpp') Program(source=src_files, target='program')


如果需要用同一個SConstruct文件編譯多個程序,只需要調用Program方法多次:

Program('foo.cpp') Program('bar', ['bar1.cpp', 'bar2.cpp'])


多個程序之間共享源文件是很常見的代碼重用方法。一種方式就是利用公共的源文件創建一個庫文件,然后其他的程序可以鏈接這個庫文件。另一個更直接,但是不夠便利的方式就是在每個程序的源文件列表中包含公共的文件,示例如下:

common=['common1.cpp', 'common2.cpp'] foo_files=['foo.cpp'] + common bar_files=['bar1.cpp', 'bar2.cpp'] + common Program('foo', foo_files) Program('bar', bar_files)


4. 編譯和鏈接庫文件


(1)編譯靜態庫:

你可以使用Library方法來編譯庫文件: Library('foo', ['f1.cpp', 'f2.cpp', 'f3.cpp']) 除了使用源文件外,Library也可以使用目標文件 Library('foo', ['f1.c', 'f2.o', 'f3.c', 'f4.o']) 你甚至可以在文件List里混用源文件和目標文件 Library('foo', ['f1.cpp', 'f2.o', 'f3.c', 'f4.o']) 使用StaticLibrary顯示編譯靜態庫 StaticLibrary('foo', ['f1.cpp', 'f2.cpp', 'f3.cpp'])


(2)編譯動態庫:
?

? 如果想編譯動態庫(在POSIX系統里)或DLL文件(Windows系統),可以使用SharedLibrary: SharedLibrary('foo', ['f1.cpp', 'f2.cpp', 'f3.cpp'])


(3)鏈接庫文件:

鏈接庫文件的時候,使用$LIBS變量指定庫文件,使用$LIBPATH指定存放庫文件的目錄: Library('foo', ['f1.cpp', 'f2.cpp', 'f3.cpp']) Program('prog', LIBS=['foo', 'bar'], LIBPATH='.')注意到,你不需要指定庫文件的前綴(比如lib)或后綴(比如.a或.lib),SCons會自動匹配。 默認情況下,鏈接器只會在系統默認的庫目錄中尋找庫文件。SCons也會去$LIBPATH指定的目錄中去尋找庫文件。$LIBPATH由一個目錄列表組成,如下所示: Program('prog', LIBS='m', LIBPATH=['/usr/lib', '/usr/local/lib'])


5. 節點對象?


編譯方法返回目標節點列表
? ? 所有編譯方法會返回一個節點對象列表,這些節點對象標識了那些將要被編譯的目標文件。這些返回出來的節點可以作為參數傳遞給其他的編譯方法。例如,假設我們想編譯兩個目標文件,這兩個目標有不同的編譯選項,并且最終組成一個完整的程序。這意味著對每一個目標文件調用Object編譯方法,如下所示:

Object('hello.cpp', CCFLAGS='-DHELLO') Object('goodbye.cpp', CCFLAGS='-DGOODBYE') Program(['hello.o', 'goodbye.o'])


? ? 這樣指定字符串名字的問題就是我們的SConstruct文件不再是跨平臺的了。因為在Windows里,目標文件成為了hello.obj和goodbye.obj。一個更好的解決方案就是將Object編譯方法返回的目標列表賦值給變量,這些變量然后傳遞給Program編譯方法:?

hello_list = Object('hello.cpp', CCFLAGS='-DHELLO') goodbye_list = Object('goodbye.c', CCFLAGS='-DGOODBYE') Program(hello_list + goodbye_list)


顯示創建文件和目錄節點
? ? 在SCons里,表示文件的節點和表示目錄的節點是有清晰區分的。SCons的File和Dir函數分別返回一個文件和目錄節點:

hello_c=File('hello.cpp') Program(hello_c)


? ? 通常情況下,你不需要直接調用File或Dir,因為調用一個編譯方法的時候,SCons會自動將字符串作為文件或目錄的名字,以及將它們轉換為節點對象。只有當你需要顯示構造節點類型傳遞給編譯方法或其他函數的時候,你才需要手動調用File和Dir函數。有時候,你需要引用文件系統中一個條目,同時你又不知道它是一個文件或一個目錄,你可以調用Entry函數,它返回一個節點可以表示一個文件或一個目錄:

xyzzy=Entry('xyzzy')
?將一個節點的文件名當作一個字符串
? ? 如果你不是想打印文件名,而是做一些其他的事情,你可以使用內置的Python的str函數。例如,你想使用Python的os.path.exists判斷一個文件是否存在:

import os.path program_list=Program('hello.cpp') program_name=str(program_list[0]) if not os.path.exists(program_name):print program_name, "does not exist!"


GetBuildPath:從一個節點或字符串中獲得路徑
? ? env.GetBuildPath(file_or_list)返回一個節點或一個字符串表示的路徑。它也可以接受一個節點或字符串列表,返回路徑列表。如果傳遞單個節點,結果就和調用str(node)一樣。路徑可以是文件或目錄,不需要一定存在:

env=Environment(VAR="value") n=File("foo.cpp") print env.GetBuildPath([n, "sub/dir/$VAR"])將會打印輸出如下:?$ scons -Q ['foo.cpp', 'sub/dir/value'] scons: . is up to date.


6. 依賴性

隱式依賴:$CPPPATH Construction變量 #include <iostream> #include "hello.h" using namespace std;int main() {cout << "Hello, " << string << endl;return 0; }并且,hello.h文件如下:? #define string "world"


? ? 在這種情況下,我們希望SCons能夠認識到,如果hello.h文件的內容發生改變,那么hello程序必須重新編譯。我們需要修改SConstruct文件如下:?

Program('hello.cpp', CPPPATH='.') ?#CPPPATH告訴SCons去當前目錄('.')查看那些被C源文件(.c或.h文件)包含的文件。就像$LIBPATH變量,$CPPPATH也可能是一個目錄列表,或者一個被系統特定路徑分隔符分隔的字符串。Program('hello.cpp', CPPPATH=['include', '/home/project/inc'])


7. 環境


(1)外部環境
? ? 外部環境指的是在用戶運行SCons的時候,用戶環境中的變量的集合。這些變量在SConscript文件中通過Python的os.environ字典可以獲得。你想使用外部環境的SConscript文件需要增加一個import os語句。

(2)構造環境
? ? 一個構造環境是在一個SConscript文件中創建的一個唯一的對象,這個對象包含了一些值可以影響SCons編譯一個目標的時候做什么動作,以及決定從那一個源中編譯出目標文件。SCons一個強大的功能就是可以創建多個構造環境,包括從一個存在的構造環境中克隆一個新的自定義的構造環境。

創建一個構造環境:Environment函數
? ? 默認情況下,SCons基于你系統中工具的一個變量集合來初始化每一個新的構造環境。當你初始化一個構造環境時,你可以設置環境的構造變量來控制一個是如何編譯的。例如:

import os env=Environment(CC='gcc', CCFLAGS='-O2') env.Program('foo.c') 或者 env=Environment(CXX='/usr/local/bin/g++', CXXFLAGS='-02') env.Program('foo.cpp')


從一個構造環境中獲取值
? ? 你可以使用訪問Python字典的方法獲取單個的構造變量:?

env=Environment() print "CC is:", env['CC'] print "CXX is:", env['CXX']


? ? 一個構造環境實際上是一個擁有方法的對象。如果你想直接訪問構造變量的字典,你可以使用Dictionary方法:?

env=Environment(FOO='foo', BAR='bar') dict=env.Dictionary() for key in ['OBJSUFFIX', 'LIBSUFFIX', 'PROGSUFFIX']:print "key=%s, value=%s" ?% ?(key,dict[key])


?默認的構造環境:DefaultEnvironment函數
? ? 你可以控制默認構造環境的設置,使用DefaultEnvironment函數:

DefaultEnvironment(CC='/usr/local/bin/gcc')
? ? 這樣配置以后,所有Program或者Object的調用都將使用/usr/local/bin/gcc編譯目標文件。注意到DefaultEnvironment返回初始化了的默認構造環境對象,這個對象可以像其他構造環境一樣被操作。所以如下的代碼和上面的例子是等價的:?

env=DefaultEnvironment()
env['CC']='/usr/local/bin/gcc'
多個構造環境?
? ? 構造環境的真正優勢是你可以創建你所需要的許多不同的構造環境,每一個構造環境對應了一種不同的方式去編譯軟件的一部分或其他文件。比如,如果我們需要用-O2編譯一個程序,編譯另一個用-g,我們可以如下做:

opt=Environment(CCFLAGS='-O2') dbg=Environment(CCFLAGS='-g') opt.Program('foo','foo.cpp') dbg.Program('bar','bar.cpp')


拷貝構造環境:Clone方法?
? ? 有時候你想多于一個構造環境對于一個或多個變量共享相同的值。當你創建每一個構造環境的時候,不是重復設置所有共用的變量,你可以使用Clone方法創建一個構造環境的拷貝。Environment調用創建一個構造環境,Clone方法通過構造變量賦值,重載拷貝構造環境的值。例如,假設我們想使用gcc創建一個程序的三個版本,一個優化版,一個調試版,一個其他版本。我們可以創建一個基礎構造環境設置$CC為gcc,然后創建兩個拷貝:

env=Environment(CC='gcc') opt=env.Clone(CCFLAGS='-O2') dbg=env.Clone(CCFLAGS='-g') env.Program('foo','foo.cpp') o=opt.Object('foo-opt','foo.cpp') opt.Program(o) d=dbg.Object('foo-dbg','foo.cpp') dbg.Program(d)


替換值:Replace方法
? ? 你可以使用Replace方法替換已經存在的構造變量:

env=Environment(CCFLAGS='-DDEFINE1'); env.Replace(CCFLAGS='-DDEFINE2'); env.Program('foo.cpp')


在沒有定義的時候設置值:SetDefault方法
? ? 有時候一個構造變量應該被設置為一個值僅僅在構造環境沒有定義這個變量的情況下。你可以使用SetDefault方法,這有點類似于Python字典的set_default方法:

env.SetDefault(SPECIAL_FLAG='-extra-option') 控制目標文件的路徑:env.Install方法? test = env.Program('test.cpp') env.Install('bin', 'test.exe') #表示要將test.exe 放到bin目錄下 執行SConscript腳本文件 SConscript(scripts, [exports, variant_dir, duplicate]) env.SConscript(scripts, [exports, variant_dir, duplicate]) SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate]) env.SConscript(dirs=subdirs, [name=script, exports, variant_dir, duplicate])


? ? 調用該SConscript函數有兩種方法: ?

? ? 第一種方法是明確指定一個或多個 scripts 作為第一個參數。可以將單個腳本指定為字符串; 多個腳本則必須指定為列表(顯式或由函數創建 Split),例子:

SConscript('SConscript') ? ? ? ? ? ? ? ? ? ? ? ? ? ?#在當前目錄中運行SConscript? SConscript('src / SConscript') ? ? ? ? ? ? ? ? ? ? ?#在src目錄中運行SConscript? SConscript(['src / SConscript','doc / SConscript'])# 執行多個腳本


? 第二種方法是將(子)目錄名稱列表指定為 dirs=subdirs 參數。在這種情況下,scons將 在每個指定目錄中執行名為SConscript的輔助配置文件 。您可以 通過提供可選的name = keyword參數來指定除了名為SConscript以外script。例子:

SConscript(dirs ='.') ? ? #在當前目錄中運行SConscript? SConscript(dirs ='src') ? ?#在src目錄中運行SConscript? SConscript(dirs = ['src','doc']) SConscript(dirs = [' sub1','sub2'],name ='MySConscript')


? ?可選exports參數提供變量名稱列表或要導出到script的命名值字典。這些變量僅在本地導出到指定 script(s)的變量,并且不會影響Export函數使用的全局變量池 。子腳本Script必須使用Import函數來導入變量。例子:

foo = SConscript('sub/SConscript',exports ='env') SConscript('dir/SConscript',exports = ['env','variable']) SConscript(dirs ='subdir',exports ='env variable' ) SConscript(dirs = ['one','two','three'],exports ='shared_info')


? ? ?如果提供variant_dir參數,Sconscript位于源碼目錄之下,就像位于variant_dir目錄下一樣,例子一:

SConscript('src/SConscript', variant_dir = 'build')
等價于:
VariantDir('build', 'src') ? ? ?# 指定obj文件的目錄
SConscript('build/SConscript')
? 例子二:

SConscript('SConscript', variant_dir = 'build')
等價于:
VariantDir('build', '.')
SConscript('build/SConscript')
? ? ?如果沒有提供variant_dir參數,那么參數duplicate參數將會被忽略,這個參數表示是否備份目標文件。 ?

?(3)執行環境
? ? 一個執行環境是SCons在執行一個外部命令編譯一個或多個目標文件時設置的一些值。這和外部環境是不同的。

控制命令的執行環境
? ? 當SCons編譯一個目標文件的時候,它不會使用你用來執行SCons的同樣的外部環境來執行一些命令。它會使用$ENV構造變量作為外部環境來執行命令。這個行為最重要的體現就是PATH環境變量,它決定了操作系統將去哪里查找命令和工具,與你調用SCons使用的外部環境的不一樣。這就意味著SCons將不能找到你在命令行里執行的所有工具。PATH環境變量的默認值是/usr/local/bin:/bin:/usr/bin。如果你想執行任何命令不在這些默認地方,你需要在你的構造環境中的$ENV字典中設置PATH,最簡單的方式就是當你創建構造環境的時候初始化這些值:

path=['/usr/local/bin', '/usr/bin']
env=Environment(ENV={'PATH':PATH})
? ? 以這種方式將一個字典賦值給$ENV構造變量完全重置了外部環境,所以當外部命令執行的時候,設置的變量僅僅是PATH的值。如果你想使用$ENV中其余的值,僅僅只是設置PATH的值,你可以這樣做:?

env['ENV']['PATH']=['/usr/local/bin','/bin','/usr/bin']
? ? 注意SCons允許你用一個字符串定義PATH中的目錄,路徑用路徑分隔符分隔:?

?env['ENV']['PATH']='/usr/local/bin:/bin:/usr/bin'
從外部環境獲得PATH值
? ? 你可能想獲得外部的PATH來作為命令的執行環境。你可以使用來自os.environ的PATH值來初始化PATH變量:

import os
env=Environment(ENV={'PATH':os.environ['PATH']})
? ? 你設置可以設置整個的外部環境:

import os
env=Environment(ENV=os.environ)
在執行環境里增加PATH的值
? ? 常見的一個需求就是增加一個或多個自定義的目錄到PATH變量中:

env=Environment(ENV=os.environ)
env.PrependENVPath('PATH','/usr/local/bin')
env.AppendENVPath('LIB','/usr/local/lib')
本文參考:https://blog.csdn.net/andyelvis/article/category/948141
?

總結

以上是生活随笔為你收集整理的Scons使用入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

亚洲区视频在线 | 久久久久亚洲精品 | 综合伊人久久 | 超级碰视频 | 我要看黄色一级片 | 免费麻豆视频 | 91av99 | 青青河边草观看完整版高清 | 激情伊人| 亚洲国产网址 | 午夜久久久影院 | 亚洲成人中文在线 | 久久久影院一区二区三区 | 日韩高清在线一区 | 日本公妇色中文字幕 | 国产精品99久久免费黑人 | 成人免费视频在线观看 | 亚洲另类交| 不卡的av在线播放 | 久久,天天综合 | 久久69精品 | av东方在线 | 97激情影院 | 国产精品久久久久久久久久免费 | 韩国一区视频 | 黄色av免费看 | 97在线视频免费看 | 亚洲最大的av网站 | 日批在线看| 成人免费影院 | 久久综合导航 | 亚洲aaa毛片 | 91精彩视频在线观看 | 成人av高清在线观看 | 亚洲天堂va | 黄色资源在线 | 最近日本韩国中文字幕 | 国产人成在线观看 | 日b视频在线观看网址 | 91手机视频 | 精品国产亚洲在线 | 欧美一级日韩免费不卡 | 久久久久久中文字幕 | 久草免费在线视频观看 | 午夜精品一区二区三区在线播放 | 蜜臀av免费一区二区三区 | 伊人久久在线观看 | 亚洲欧美日本一区二区三区 | 欧美精品免费一区二区 | 久热免费在线观看 | 国产一二三在线视频 | 亚洲经典中文字幕 | 亚洲在线日韩 | 五月花激情 | 99精品小视频| 精品久久久久国产 | 激情久久网 | 亚洲韩国一区二区三区 | 久久视影 | 一 级 黄 色 片免费看的 | 亚洲欧洲中文日韩久久av乱码 | 中文字幕日韩免费视频 | 在线观看av不卡 | 久久综合偷偷噜噜噜色 | 精品天堂av | 免费看黄的| 欧美精品在线观看一区 | 玖玖在线精品 | 欧美日本高清视频 | 国产黄在线 | 久草电影网 | 六月婷婷色| 日韩一三区| 国产精品网在线观看 | 日日夜夜中文字幕 | 国产免费一区二区三区最新6 | 999视频网| 天天天干天天射天天天操 | 久久国产午夜精品理论片最新版本 | 久久1区| 国产一区二区网址 | 一区二区三区高清在线 | 欧美综合久久久 | 综合久久综合久久 | 午夜精品一二三区 | 99视频网址 | 青春草免费在线视频 | 欧美日比视频 | 超级碰碰碰视频 | 播五月综合 | 国产视频在线观看一区 | 国产一区二区精品久久91 | 五月婷婷一区二区三区 | 天天弄天天操 | 一区二区三区动漫 | 久久精品直播 | 国产午夜亚洲精品 | 国产精品久久久久久久久蜜臀 | www黄色| 久久久久久久久久亚洲精品 | 精精国产xxxx视频在线播放 | 在线看日韩av | 精品黄色片 | 成人综合日日夜夜 | 亚洲国产av精品毛片鲁大师 | 国产情侣一区 | 国产精品成人一区二区三区吃奶 | 九九久久久久久久久激情 | 天天干天天干天天干天天干天天干天天干 | 国产精品 日韩 欧美 | 国产精品美女久久久 | 青青草国产在线 | 亚洲国产精品电影 | 国产网红在线 | 亚洲一二三久久 | 天天干天天天天 | 天天操天天舔天天爽 | 色婷婷av在线 | 综合在线观看色 | 最近中文字幕免费 | 久久国产亚洲 | 人人澡超碰碰 | 天天干,天天射,天天操,天天摸 | 久久九九影视网 | 操操色 | 一区二区视频电影在线观看 | 99热免费在线 | 国产精品乱码久久久 | 日日久视频 | 日本中文字幕高清 | 中文字幕在线观看网 | 激情欧美一区二区免费视频 | 国产精品一区二区av影院萌芽 | 亚州欧美精品 | 成人a在线观看高清电影 | 精品久久1 | 久久精品免费观看 | 在线观看www. | 一区二区三区免费 | 亚洲国产免费网站 | 日韩激情在线 | 青青河边草免费直播 | 91精品国产九九九久久久亚洲 | 国产午夜精品久久 | 99视频精品视频高清免费 | 婷婷视频在线观看 | 久久久影片| 欧美一级特黄aaaaaa大片在线观看 | 成人久久久久久久久 | 最近免费中文字幕大全高清10 | 黄色免费视频在线观看 | 午夜视频免费 | 国产精品av免费观看 | 黄色av一级片 | 亚洲精品小区久久久久久 | 干综合网 | 日韩精选在线观看 | 黄色1级大片 | 亚洲精品视频在线播放 | 麻豆一区二区 | 色综合久久66 | 日韩av黄 | 久草视频在线资源站 | 黄色中文字幕在线 | 草久久久久 | 天堂资源在线观看视频 | 99久久夜色精品国产亚洲 | 欧美一区二区在线免费观看 | 在线观看免费黄色 | 中文字幕在线视频网站 | 亚洲一区免费在线 | 在线观看久久久久久 | 四虎成人精品在永久免费 | 狠狠婷婷| 最新高清无码专区 | 日韩久久网站 | 国产麻豆精品免费视频 | 在线91色 | 在线 精品 国产 | 最新av网址在线 | 国产亚洲视频系列 | 免费观看第二部31集 | 欧美日韩国产免费视频 | 最新成人av | 成人国产精品免费 | 黄色软件视频网站 | 中文字幕在线观看不卡 | 国产亚洲精品久久19p | 美女视频免费精品 | 69国产盗摄一区二区三区五区 | 欧美日韩免费视频 | 国产精品免费久久久久久久久久中文 | 久色婷婷 | 亚洲欧美日韩国产 | 欧美小视频在线观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 久久福利综合 | 狠狠操狠狠干天天操 | 成人a在线观看高清电影 | 日韩精品欧美一区 | 午夜精品久久久久久99热明星 | 免费看搞黄视频网站 | 久久久精品在线观看 | 精品产品国产在线不卡 | 成人黄色资源 | 久产久精国产品 | 在线观看视频中文字幕 | 国产在线观看你懂得 | 女人18毛片a级毛片一区二区 | 久久久久久久国产精品影院 | 久久蜜臀一区二区三区av | av无限看 | 国产一区视频在线观看免费 | 伊人国产女 | 亚洲成av人片在线观看香蕉 | 在线电影 一区 | 欧美日韩视频精品 | 欧美日韩国产一区二 | 日本视频网 | 欧美色噜噜| 欧美日韩精品免费观看 | av免费观看网址 | av播放在线| 天天看天天干 | 久久电影网站中文字幕 | 国产.精品.日韩.另类.中文.在线.播放 | 久久成人精品电影 | 国产精品普通话 | 一区在线免费观看 | 美女免费黄视频网站 | 亚洲高清国产视频 | 91激情 | 亚洲综合网站在线观看 | 91av在线电影| 在线观看91网站 | 麻豆视频免费入口 | 国产美女网站视频 | 亚洲人久久久 | 国产 在线 高清 精品 | 九九热久久免费视频 | 成人免费观看完整版电影 | 色全色在线资源网 | 国产黄色在线 | 天天翘av | 国产视频网站在线观看 | 国产精品久久久久久久久久白浆 | 91精品久久久久久综合乱菊 | 国产婷婷一区二区 | 日韩精品无码一区二区三区 | 韩国一区二区三区在线观看 | 狠狠操在线 | 美女国产在线 | 国产麻豆精品一区二区 | 亚洲国产精品一区二区尤物区 | 不卡av在线免费观看 | 国产99精品在线观看 | 国产精品自在欧美一区 | 狠狠躁日日躁夜夜躁av | 亚洲91中文字幕无线码三区 | 国产在线97 | 亚洲久久视频 | 在线成人欧美 | 亚洲成人精品 | 欧美激情综合色综合啪啪五月 | 最近中文字幕免费视频 | 国产一区欧美日韩 | 狠狠的操你 | 亚洲精品免费在线 | 久久综合色一综合色88 | 少妇bbbb| 欧美亚洲xxx | 日b视频在线观看网址 | 色综合婷婷久久 | 国产在线不卡一区 | 在线观看成人 | 欧美精品亚洲精品日韩精品 | 国产色一区| 亚洲精品美女久久17c | 亚洲夜夜网 | 91视频啪 | 久久久久久久久久网站 | 中文欧美字幕免费 | 三级黄色片在线观看 | 四虎永久国产精品 | 在线一区二区三区 | 亚洲天天在线日亚洲洲精 | 欧美作爱视频 | 天天操天天干天天爽 | 国内外成人在线 | 欧美va天堂在线电影 | 日韩中字在线观看 | 四虎在线观看精品视频 | 999久久国精品免费观看网站 | 日韩xxxxxxxxx | 国产色婷婷 | 欧美日韩裸体免费视频 | 中文字幕网站 | 亚洲午夜精品久久久久久久久 | 精品国产一区二区三区av性色 | 黄色录像av| 欧美精品乱码久久久久 | 91日本在线播放 | 午夜影院在线观看18 | 久久伊人色综合 | 激情伊人五月天 | 色婷婷导航 | 日韩高清成人在线 | 国产精品久久久精品 | 国产精品美女毛片真酒店 | 麻豆传媒视频在线 | av免费观看高清 | 欧美精品久久久久久久久久 | 婷婷色狠狠 | 国产精品不卡一区 | 久草在线官网 | 天堂av免费在线 | 91视频久久久久久 | 在线观看色网站 | www.久久久精品 | 天天干 天天摸 天天操 | 亚洲 精品在线视频 | 亚洲精品动漫久久久久 | 精品国产黄色片 | www四虎影院 | 江苏妇搡bbbb搡bbbb | 中文字幕在线观看一区二区三区 | 国产精品一区二区免费 | 亚洲综合欧美精品电影 | 九九九热精品免费视频观看 | 久久久久免费精品视频 | 精品久久久久久久久亚洲 | 国产精品99久久久久 | 日韩在线视频观看 | 在线91色| www视频免费在线观看 | 久久久国产网站 | 久草视频免费在线播放 | 五月婷婷久久综合 | 日韩欧美成人网 | 精品嫩模福利一区二区蜜臀 | 中文字幕一区二区三区视频 | 成年人免费观看国产 | 超碰人人乐 | 麻豆观看| 在线免费视频a | 日韩免费电影 | 日韩欧美99| 狠狠操狠狠干天天操 | 国产淫片| 亚洲久草网 | 久久久久国产精品www | 久久免费视频精品 | www.亚洲精品 | 亚洲色图av | 91探花国产综合在线精品 | 亚洲欧美日韩国产一区二区 | 久久香蕉一区 | 国产18精品乱码免费看 | av在线影片 | 久久婷婷精品视频 | 亚洲国产精品久久久久婷婷884 | 亚洲成人在线免费 | 国产精品亚 | 国产一区高清在线 | 日韩激情网| 成人在线视频你懂的 | 黄色在线成人 | 久久久久久久久久久久久久av | 日本精品一 | 超碰在线天天 | 日韩免费视频网站 | 在线观看国产福利片 | 91九色视频在线观看 | 日韩免费网站 | 国产精品一区二区久久国产 | 日韩av女优视频 | 中文久草 | 91麻豆精品国产自产在线 | 91看片在线播放 | 24小时日本在线www免费的 | 精品国产网址 | 99精品欧美一区二区 | 久久久99精品免费观看乱色 | 深爱开心激情 | 99久久精品日本一区二区免费 | 精品国产一区二区三区日日嗨 | 久草视频免费在线观看 | 久久久久亚洲精品 | 亚洲经典中文字幕 | 91精品国产一区二区三区 | av久久在线| 高清视频一区二区三区 | 精品中文字幕视频 | 久久大视频 | 国产一级做a | 久久不卡免费视频 | 国产五十路毛片 | 狠狠色丁香婷婷综合久久片 | 麻豆传媒视频在线 | 日日爱999| 人人干天天干 | 欧美日韩视频一区二区三区 | 五月婷网 | 婷婷久久五月天 | 欧美专区日韩专区 | 久久久精品国产一区二区电影四季 | 91九色视频网站 | 久久午夜精品视频 | 国产99在线免费 | 99精品在线免费视频 | 91九色综合 | 又粗又长又大又爽又黄少妇毛片 | 亚洲激情一区二区三区 | 黄色视屏在线免费观看 | 97国产大学生情侣白嫩酒店 | 久久久激情网 | av综合网址 | 久久久视频在线 | 黄色av电影网 | 超碰公开在线观看 | 久久久久麻豆 | 69亚洲乱| 久久精品国产v日韩v亚洲 | 又粗又长又大又爽又黄少妇毛片 | 日p在线观看| 欧美精品免费在线 | 在线观看免费成人av | 欧美激情另类文学 | 久久伊人精品一区二区三区 | 亚洲国产成人精品在线观看 | 香蕉视频免费在线播放 | 精品国产精品国产偷麻豆 | 五月婷婷激情综合 | av网址aaa | 国产美女无遮挡永久免费 | 亚洲国产播放 | 91精品伦理 | 日韩在线观看视频一区二区三区 | 探花视频在线观看+在线播放 | 国产xxxxx在线观看 | 国产精品久久久久久久久久三级 | 免费在线观看日韩视频 | 狠狠撸电影 | 亚洲国产剧情av | 99精品免费 | 黄色av免费看 | 欧洲色吧 | 久久人人插 | av三区在线 | 天天操天天操天天操天天操天天操天天操 | 天天天色 | 96亚洲精品久久久蜜桃 | 韩国精品福利一区二区三区 | 综合激情婷婷 | 主播av在线 | 热久久免费视频 | 亚洲激情六月 | 96久久久| 亚洲国产精品一区二区尤物区 | 久久久99精品免费观看乱色 | 亚洲视频免费在线观看 | 亚洲黄网站 | 日本中文字幕在线一区 | 欧美精品v国产精品 | 国产婷婷视频在线 | 国产午夜精品一区二区三区嫩草 | 久久精品综合一区 | 天天爱天天操天天干 | 成人av在线资源 | 日韩免费专区 | 国产97在线视频 | 国产午夜三级一区二区三 | 久久久精品免费观看 | 在线中文字幕观看 | 日韩理论片在线观看 | 国产精品一区在线播放 | 91香蕉视频在线下载 | 日韩在线免费观看视频 | 欧美精品日韩 | 欧美日韩不卡一区 | 日本公妇在线观看高清 | 国产色视频网站2 | 国产一级二级三级在线观看 | 激情久久久久久久久久久久久久久久 | 人人搞人人搞 | 天堂在线免费视频 | 天天操网址 | 黄网av在线 | 成人免费观看a | 天天操操操操操 | 97热视频| 91av在线不卡 | 中文字幕免费看 | 国产 日韩 欧美 中文 在线播放 | 国产亚洲观看 | 亚洲欧美日韩在线看 | 亚洲国产精品一区二区尤物区 | 国产欧美精品一区二区三区四区 | 欧美日韩免费观看一区=区三区 | 日韩中文字幕在线 | 亚洲人av免费网站 | 99久久精品国产系列 | 欧美国产日韩一区二区三区 | 国产高清视频免费观看 | 国产91精品看黄网站在线观看动漫 | 日韩电影久久 | 亚洲精品一区中文字幕乱码 | 色综合久久88色综合天天6 | 亚洲国产中文字幕在线观看 | 99精品视频免费观看视频 | av爱干| 在线观看电影av | 久久国产精品一区二区三区四区 | 91视频麻豆 | 午夜久久影视 | 日韩精品免费一区二区在线观看 | av免费观看网站 | 国产96av| 日躁夜躁狠狠躁2001 | 国产麻豆剧果冻传媒视频播放量 | 成人午夜在线观看 | 成人a毛片 | 亚洲天堂精品视频 | 亚洲精品在线免费看 | 亚洲激情一区二区三区 | 欧美精品免费在线观看 | 91免费高清在线观看 | 日韩久久久久久久 | 日本在线中文 | 久久丝袜视频 | 99这里只有精品视频 | 一区免费视频 | 91精品国产欧美一区二区 | 亚洲人成综合 | 天天色棕合合合合合合 | 色在线免费视频 | 激情欧美一区二区三区免费看 | 国产在线更新 | 亚洲国产片色 | 香蕉免费| 国产精品美女久久久久久久 | 草久热| 最近中文字幕高清字幕免费mv | 日韩欧美一区二区在线 | 久久99亚洲网美利坚合众国 | 久久久国际精品 | 超碰国产在线 | 视频一区亚洲 | 久久99网站 | 天天操综 | 在线播放日韩av | 日韩精品短视频 | 日韩激情视频 | 777奇米四色 | 日韩av网站在线播放 | 免费看v片网站 | 色婷婷av国产精品 | 天天爱天天操 | 国产69久久久 | 东方av在 | 天天综合天天做 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 超碰人人在 | 狠狠的日| 欧美成人精品在线 | 99色在线观看视频 | 天天激情站| 欧美一级片免费播放 | 亚洲精品一区二区三区四区高清 | 天天要夜夜操 | 国产精品久久久久久久久久三级 | 亚洲日韩中文字幕 | 国产在线高清视频 | 黄色福利网站 | 国产精品中文久久久久久久 | 91香蕉视频 | 91九色porny在线 | 六月天综合网 | 九色精品免费永久在线 | 国产五十路毛片 | 国产亚洲aⅴaaaaaa毛片 | 五月天中文在线 | 成人黄色小说在线观看 | 久久伊人精品一区二区三区 | 99综合影院在线 | 中文字幕a∨在线乱码免费看 | 日韩中出在线 | 日韩性xxx| 国产精品久久99精品毛片三a | 精品久久久久久久久久久久 | 99久久精品国产一区二区成人 | 九色琪琪久久综合网天天 | 色综合网 | 精品亚洲国产视频 | 最新国产视频 | 中文字幕一区二区三区乱码在线 | 国产不卡网站 | 亚洲男女精品 | 日韩中文字幕免费视频 | 精品视频在线看 | 福利av在线 | 日韩爱爱网站 | 91系列在线 | 亚洲欧洲日韩 | 免费观看一级成人毛片 | 欧美日韩一区二区三区在线免费观看 | 人人插人人看 | 久久伦理网 | 91午夜精品| 日韩在线视频网 | 黄污污网站 | 成年人免费在线观看网站 | 精品久久免费看 | 丁香六月色| 国精产品999国精产品视频 | 久久久黄色 | 有没有在线观看av | 亚洲视频专区在线 | 成人在线视频免费看 | 日韩,精品电影 | 日韩在线免费视频观看 | 日日日日 | 成年人免费观看在线视频 | 久久国产精品99久久人人澡 | 日本中文字幕电影在线免费观看 | 国产 日韩 在线 亚洲 字幕 中文 | 美女视频黄的免费的 | 久久综合婷婷综合 | 黄色h在线观看 | 精品国产伦一区二区三区观看体验 | 就要色综合| 精品国产伦一区二区三区观看体验 | 伊人影院av| 日韩久久久久久久久久久久 | 久草av在线播放 | 日韩视频免费 | 亚洲国产精品成人av | 91麻豆精品国产自产在线游戏 | 又粗又长又大又爽又黄少妇毛片 | 天天干天天操天天射 | 久久黄色小说 | 91一区在线观看 | 成人免费91 | 久久99九九99精品 | 99久久精品午夜一区二区小说 | 天天色婷婷 | 国产成人免费高清 | 五月婷婷视频在线 | 久久99精品波多结衣一区 | 中文字幕在线日 | 91大神免费视频 | 最近高清中文在线字幕在线观看 | 日韩在线视频网 | 五月激情丁香图片 | 人人添人人 | 五月天网页 | 毛片网在线 | 亚洲码国产日韩欧美高潮在线播放 | 国产精品一区二区美女视频免费看 | 日韩精品网址 | 免费能看的av | 菠萝菠萝蜜在线播放 | 91精品成人| 久久久久国产精品午夜一区 | 亚洲aaa级 | 亚洲丝袜一区二区 | 天天干天天摸天天操 | 91在线免费公开视频 | 亚洲va欧洲va国产va不卡 | 欧美日韩高清一区二区三区 | 亚洲网久久| 久久综合色8888 | 最近中文字幕完整视频高清1 | 久久视频免费观看 | 日韩在线免费不卡 | 亚洲闷骚少妇在线观看网站 | 久久久视屏| 国产精品系列在线播放 | 福利一区二区三区四区 | 日韩精品久久久久 | 青春草视频在线播放 | 欧美日韩一级在线 | 日本公乱妇视频 | 91在线日韩| 日韩高清无线码2023 | 国产大尺度视频 | 欧美日韩中文字幕在线视频 | 日韩女同一区二区三区在线观看 | 很黄很色很污的网站 | 久久999精品| 毛片网在线播放 | 99久热在线精品视频成人一区 | 五月婷丁香| 久草视频免费在线观看 | 久久久福利| 国产精品久久久久久久久久白浆 | 九九亚洲视频 | 97人人看| 久久理论片 | 免费高清在线观看电视网站 | 欧美激情在线网站 | 日一日操一操 | 中文字幕二区 | 2024av| 亚洲成人黄色在线 | 不卡视频在线看 | av在线网站免费观看 | 国产分类视频 | 国产精品18久久久久久不卡孕妇 | 天天天色| 国产日产精品一区二区三区四区 | 日韩国产在线观看 | 五月天电影免费在线观看一区 | 日韩精品影视 | 国产精品视频地址 | 97视频免费在线观看 | www.神马久久| 97电影院网 | 国产一级在线观看视频 | 国产精品网红直播 | 婷婷综合 | 在线免费观看一区二区三区 | 91精品在线免费 | 五月亚洲综合 | 免费观看一级成人毛片 | 天天摸夜夜添 | 黄色毛片大全 | 香蕉国产91 | 成人在线电影观看 | 五月婷婷一级片 | 久久精品99久久 | 三级黄色理论片 | 青草草在线视频 | 人人搞人人干 | 综合久久久 | 精品一区二区免费 | 中文字幕精品一区二区精品 | 成人丝袜| 亚洲激情 | 97高清视频 | 久久婷婷国产 | 国产在线观看中文字幕 | 色网站国产精品 | 一区 二区 精品 | 国产成人免费在线 | 九九九九九九精品任你躁 | 久草在线视频在线 | 欧美巨大 | 国产精品原创av片国产免费 | 久久久伦理 | 九九日九九操 | 精品久久久久久国产91 | 国产不卡在线视频 | 久草热久草视频 | 久久黄色影视 | 91av成人 | 91人网站 | 911国产 | 国产韩国精品一区二区三区 | 欧美色图p | 麻豆av一区二区三区在线观看 | 国产日韩精品一区二区三区 | 99在线热播精品免费99热 | 中文字幕一二三区 | 国产少妇在线观看 | 91久久电影| 久久草av | 日韩在线视频二区 | 中文字幕日本在线 | 精品国产99国产精品 | 欧美孕妇视频 | 色婷婷天天干 | 在线观看免费91 | 色视频网页 | 久久久久国产精品免费免费搜索 | www.在线看片.com | 欧美二区在线播放 | 亚洲最大激情中文字幕 | 狠狠色狠狠色终合网 | 欧美日韩国产一区二区三区在线观看 | 国产一级91| 18网站在线观看 | 中文日韩在线视频 | 免费a现在观看 | 手机色站 | 欧美日韩高清国产 | 日韩精品首页 | 91麻豆精品国产午夜天堂 | 国产午夜在线观看 | 精品一二三四五区 | 免费网站在线观看成人 | 国产又粗又长的视频 | 久草精品视频在线看网站免费 | 日本精品一二区 | 精品中文字幕在线播放 | 久久高清国产视频 | 亚洲小视频在线 | 久久久麻豆视频 | www.久久免费视频 | www狠狠操 | 欧美一区二区精品在线 | 日精品在线观看 | 日韩综合视频在线观看 | 丁香九月婷婷 | 日韩av中文字幕在线免费观看 | 成人免费在线观看电影 | 中文区中文字幕免费看 | 国产精品久久久久久久久久白浆 | 中文字幕高清有码 | 欧美日韩一区三区 | 手机在线小视频 | 亚洲少妇xxxx| 午夜av在线免费 | 99久久夜色精品国产亚洲96 | 天天射天天 | 91精品国产麻豆国产自产影视 | 在线观看视频免费播放 | 久久伊人八月婷婷综合激情 | av黄色免费网站 | 99热这里只有精品8 久久综合毛片 | 国产精品福利久久久 | 在线视频精品播放 | 日韩在线免费不卡 | 69精品在线观看 | 丁香六月久久综合狠狠色 | av中文字幕亚洲 | 天天操福利视频 | 99热精品在线 | 91av看片 | 国产精品久久久久久久久久ktv | 91av视频在线免费观看 | 在线免费观看成人 | 亚洲精品在线观看的 | 久久精品日产第一区二区三区乱码 | 国产午夜三级一区二区三桃花影视 | 特级西西444www大胆高清无视频 | 久久精品99久久久久久2456 | 久久福利在线 | 99精品视频在线 | 伊人网av | 国产黄免费看 | 麻豆免费视频 | 黄免费在线观看 | 国产一级不卡毛片 | 六月丁香伊人 | 99热这里只有精品1 av中文字幕日韩 | 国产精品乱码在线 | 色av资源网 | 亚洲午夜久久久综合37日本 | 黄色h在线观看 | 一区 二区电影免费在线观看 | 2023年中文无字幕文字 | 色婷婷福利视频 | 91成人在线观看喷潮 | 国产精品一区二区精品视频免费看 | 亚洲精品在线观 | 欧美激情精品久久久久久 | 五月婷婷天堂 | 一级片视频在线 | 国产一性一爱一乱一交 | 欧美二区三区91 | 欧美午夜一区二区福利视频 | 色婷婷a | 成人毛片在线观看视频 | 免费视频在线观看网站 | 99免费观看视频 | 天天在线免费视频 | 91精品国产自产老师啪 | 成人免费影院 | 中文字幕一区二区三区在线视频 | 视频在线精品 | 波多野结衣最新 | 91污视频在线 | av永久网址 | 亚洲福利精品 | 你操综合 | 国产亚洲一区二区三区 | 在线日韩av| 91精品久久久久久久91蜜桃 | 最近中文字幕大全中文字幕免费 | 欧洲性视频 | 尤物97国产精品久久精品国产 | 国产成本人视频在线观看 | 久久久久久影视 | 日韩午夜在线观看 | 国产精品 中文字幕 亚洲 欧美 | 91片黄在线观 | 制服丝袜在线91 | 成人亚洲综合 | 天天曰夜夜爽 | 中文字幕黄色av | 久久人人97超碰精品888 | 成人国产精品免费 | 日韩欧美视频在线 | 91亚洲精品久久久中文字幕 | 少妇性bbb搡bbb爽爽爽欧美 | 91视频88av| 99视频一区 | 国产精品久久久久久久久久99 | 一区二区中文字幕在线播放 | 91在线中字 | 国产成人在线综合 | 色91在线 | 99精品视频在线观看播放 | 国产日产精品一区二区三区四区的观看方式 | 免费日韩 精品中文字幕视频在线 | 99久久久国产精品 | 黄色网址av| 国产99黄| 欧美成人精品欧美一级乱 | 天天干天天插 | 国产一级性生活 | 中文字幕日本电影 | 97超碰超碰久久福利超碰 | 有码中文字幕在线观看 | 18女毛片 | 精品久久久久久久久久国产 | 日韩精品欧美视频 | 欧美午夜理伦三级在线观看 | 91成人黄色| 日本在线观看中文字幕无线观看 | 久久精品1区 | www.天堂av | 欧美性色网站 | 色视频 在线 | 婷婷av网 | av黄免费看 | 国产高清在线观看 | 精品黄色在线观看 | 精品久久久久久久久久岛国gif | 亚洲国产手机在线 | 国产精品久久久久久超碰 | 91网站在线视频 | 丝袜美腿在线播放 | 精品国产乱码 | 91亚洲精品久久久蜜桃 | 亚洲精品视频免费在线 | 色综合久久88色综合天天免费 | 91精品入口 | 91成年人视频 | 国产视频一区二区在线观看 | 日韩视频一区二区三区在线播放免费观看 | 亚洲综合视频网 | 天天色成人 | 日本久久精品视频 | 久久久久成人免费 | 国精产品满18岁在线 | 久久久久在线视频 | 亚洲午夜精 | 丁香一区二区 | 天天色天天 | 国产精品久久久久久久免费 | 久久激情视频 | 波多野结衣电影一区二区三区 | 日韩影视大全 | 亚洲播播| 最新国产精品拍自在线播放 | 天天看天天干天天操 | av软件在线观看 | 日韩xxxxxxxxx | 五月激情亚洲 | 亚洲日韩精品欧美一区二区 | 国产黄色片网站 | 99精品在线免费 | 久久五月精品 | 福利视频 | 欧美日韩国产精品一区二区亚洲 | 久久免费观看视频 | 国产色视频 | 亚洲午夜精品福利 | 不卡电影免费在线播放一区 | 亚洲色图 校园春色 | 欧美激情综合五月色丁香 | 日韩午夜高清 | 中国一级片视频 | 国产专区在线 | 在线国产91 | 国产精品久久一区二区无卡 | 黄色福利视频网站 | 国产精品久久久久久久久久尿 | 国产视频综合在线 | 国产亚洲精品中文字幕 | 久久免费精品国产 | 国产一区二区三区免费观看视频 | 91成人网在线播放 | 中文字幕日韩av | 99性视频 | 国产手机视频 | 精品久久久精品 | 在线免费观看视频你懂的 | 午夜av片| 这里只有精品视频在线 | 日韩免费久久 | 日韩高清不卡一区二区三区 | 日精品在线观看 | 九九视频精品免费 | 91大神精品视频在线观看 | 日韩精品无 |