亚洲成人一区在线观看_天堂网www_国产精品久久9_中文在线播放_伊人天天_久久精品久久久精品美女

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > Dmd編譯器學習筆記

Dmd編譯器學習筆記
2010-01-13 22:54:09  作者:  來源:
Dmd編譯器學習筆記

英文原文在這里:
http://digitalmars.com/d/dcompiler.html
在這里有一篇翻譯文章:
http://sofire.javaeye.com/blog/111667
不過,主要是關于windows的;我更關心Linux下的使用。
順便看看兩者有啥區別。

相關文件
注意:

Linux的dmd配置文件是dmd.conf
Windows的配置文件是sc.ini


  • /dmd/bin/dmd     D 編譯器的可執行文件
     
  • /dmd/bin/dumpobj     Elf file dumper
     
  • /dmd/bin/obj2asm     Elf文件反匯編器
     
  • /dmd/bin/dmd.conf     全局配置文件(復制到 /etc/dmd.conf)
     
  • /dmd/lib/libphobos.a     D運行庫(復制到 /usr/lib/libphobos.a)
     


DMD的安裝
[list=1]
  • 下載dmd程序:http://ftp.digitalmars.com/dmd.zip,解壓到~/dmd目錄
  • 復制dmd.conf文件到/etc目錄
    Java代碼 復制代碼
    1. cp ~/dmd/bin/dmd.conf /etc  
  • 給下面的文件添加執行權限
    Java代碼 復制代碼
    1. chmod u+x ~/dmd/bin/{dmd,dumpobj,obj2asm,rdmd}  
  • 把~/dmd/bin添加到PATH環境變量;或者把它們復制到/usr/local/bin目錄下(不要只復制可執行程序)
  • 復制庫文件到/usr/lib目錄
    Java代碼 復制代碼
    1. cp ~/dmd/lib/libphobos.a /usr/lib  

    [/list]

    以上安裝過程比較簡單,只有PATH環境變量設置正確了,就應該沒有什么問題

    編譯參數和開關
    命令的格式:
    Java代碼 復制代碼
    1. dmd   files...  -switches...   

    [Windows]支持以下類型的文件:
    Java代碼 復制代碼
    1. Extension      File Type     
    2. none           D source files     
    3. .d             D source files     
    4. .di            D interface files     
    5. .obj           Object files to link in     
    6. .lib           Object code libraries to search     
    7. .exe           Name output executable file     
    8. .def           module definition file     
    9. .res           resource file    

    [Linux]支持以下類型的文件:
    Java代碼 復制代碼
    1. Extension      File Type   
    2. none           D source files   
    3. .d             D source files   
    4. .di            D interface files   
    5. .o             Object files to link in   
    6. .a             Library files to link in  

    好像不支持.so文件--這一點不肯定

    編譯開關之一
    Java代碼 復制代碼
    1. -debug   
    2.     編譯調試代碼   
    3.   
    4. -debug=level   
    5.     編譯調試代碼:code <= level   
    6.   
    7. -debug=ident   
    8.     編譯調試代碼:標識符為ident   
    9.   
    10. -version=level   
    11.     生成版本代碼:>=level   
    12.   
    13. -version=ident   
    14.     生成版本代碼:==ident   
    15.        
    16. -unittest   
    17.     編譯單元測試代碼(還有斷言)   
    18.   
    19. -cov   
    20.     添加覆蓋率分析指令;運行程序后,會生成.lst文件   
    21.   
    22. -release   
    23.     生成發行版本;會去掉契約和斷言等信息  


    -debug / -version
    debug、version的使用方法很相似
    Java代碼 復制代碼
    1. //debug.d   
    2. import std.stdio;   
    3.   
    4. void main()   
    5. {   
    6.     debug    { writefln("debug"); }   
    7.     debug(1) { writefln("debug(1)"); }   
    8.     debug(2) { writefln("debug(2)"); }   
    9.   
    10.     debug(ERROR) { writefln("debug(ERROR)"); }   
    11.     debug(WARN)  { writefln("debug(WARN)"); }   
    12.   
    13.     version(HOME)      { writefln("version(HOME)"); }   
    14.     version(BUSINESS)  { writefln("version(BUSINESS)"); }   
    15.   
    16.     version(WINDOWS) {} else { writefln("version(!WINDOWS)"); }   
    17. }  

    編譯并運行之:
    Java代碼 復制代碼
    1. # dmd -debug -run debug.d   
    2. debug   
    3. debug(1)   
    4. version(!WINDOWS)   
    5.   
    6. # dmd -debug=1 -run debug.d   
    7. debug   
    8. debug(1)   
    9. version(!WINDOWS)   
    10.   
    11. # dmd -debug=2 -run debug.d   
    12. debug   
    13. debug(1)   
    14. debug(2)   
    15. version(!WINDOWS)   
    16.   
    17. # dmd -debug=ERROR -run debug.d   
    18. debug(ERROR)   
    19. version(!WINDOWS)   
    20.   
    21. # dmd -debug=WARN -run debug.d   
    22. debug(WARN)   
    23. version(!WINDOWS)   
    24.   
    25. # dmd -version=HOME -run debug.d   
    26. version(HOME)   
    27. version(!WINDOWS)   
    28.   
    29. # dmd -version=BUSINESS -version=WINDOWS -run debug.d   
    30. version(BUSINESS)  


    -unittest
    Java代碼 復制代碼
    1. //unittest.d   
    2. import std.stdio;   
    3.   
    4. class A   
    5. {   
    6.     int i;   
    7.     this(int v) {   
    8.         i = v;   
    9.     }      
    10.   
    11.     unittest {   
    12.         A a = new A(1);   
    13.         assert(a.i == 1);    
    14.         assert(a.i != 0);    
    15.     }      
    16. }   
    17.   
    18. int add(int a, int b)   
    19. {   
    20.     return a - b;   
    21.     // 這里沒有unittest   
    22. }   
    23.   
    24. void main()   
    25. {   
    26.     // 這里沒有unittest   
    27. }   
    28.   
    29. unittest {   
    30.     assert(add(12) == 3);    
    31. }  

    先正常編譯,沒有語法錯誤:
    Java代碼 復制代碼
    1. # dmd -run unittest.d  

    再編譯單元測試代碼
    Java代碼 復制代碼
    1. # dmd -unittest -run unittest.d    
    2. Error: AssertError Failure unittest(30)  

    30行有錯誤?add函數寫錯了:(

    -cov
    看看覆蓋率分析選項:
    Java代碼 復制代碼
    1. //cov.d   
    2. import std.stdio;   
    3.   
    4. void main()   
    5. {   
    6.     for (int i; i < 2; i++)   
    7.     {   
    8.         if (i < 5)   
    9.             writefln("i < 5");   
    10.         else  
    11.             writefln("i >= 5");   
    12.     }   
    13. }  

    編譯并運行:
    Java代碼 復制代碼
    1. # dmd -cov -run cov.d   
    2. i < 5  
    3. i < 5  

    得到覆蓋率分析文件:cov.lst:(注意:編譯完并不會有這個文件;運行程序后才會生成)
    Java代碼 復制代碼
    1.        |//cov.d   
    2.        |import std.stdio;   
    3.        |   
    4.        |void main()   
    5.        |{   
    6.       6|    for (int i; i < 2; i++)   
    7.        |    {   
    8.       2|        if (i < 5)   
    9.       2|            writefln("i < 5");   
    10.        |        else  
    11. 0000000|            writefln("i >= 5");   
    12.        |    }   
    13.        |}   
    14. cov.d is 75% covered  

    第6行運行了6次--自己算算是不是;
    第11行運行了0次--搜索000000字符串,就能輕松找到沒有覆蓋到地方;
    更多詳情參考:http://digitalmars.com/d/code_coverage.html

    -release
    用法很簡單,不舉例了

    編譯開關之二
    Java代碼 復制代碼
    1. -D   
    2.     生成文檔   
    3.   
    4. -Dddocdir   
    5.     把文檔生成到docdir目錄;注意是 -Dd   
    6.        
    7. -Dffilename   
    8.     指定文檔的文件名;  

    編譯命令很簡單:
    Java代碼 復制代碼
    1. dmd -D debug.d  

    關于文檔的更多信息參考:http://sofire.javaeye.com/blog/111881

    編譯開關之三
    Java代碼 復制代碼
    1. -H   
    2.     生成.di接口文件   
    3.   
    4. -Hddir   
    5.     把接口文件生成到dir目錄;注意是 -Hd   
    6.   
    7. -Hffilename   
    8.     指定接口文件名;注意是 -Hf  

    關于接口,看一段翻譯:
    當處理源文件中的import聲明時,編譯器會搜索import對應的源文件,從中提取出需要的信息。
    編譯器同時也會搜索D接口文件,D接口文件中只包含模塊中需要導入的內容,而不是整個模塊。
    使用D接口文件的好處是:

      D接口文件更小,和D源文件相比處理起來更快。
      可以隱藏源代碼。比如以接口文件和object庫的方式提供源程序,而不是提供全部源代碼。

    D接口文件可以在編譯D源文件時用-H開關創建,D接口文件的后綴是.di。
    當編譯器分解import聲明時,搜索尋找.di形式的D接口文件,再尋找D源文件。
    D接口文件有點和C++頭文件相似,但這不是必需的,它不屬于D語言,只是編譯器的一個功能,只是用來優化程序的構建。

    dmd -H生成的接口文件包括了源代碼;只是去掉了注釋,斷言等信息;具體怎么回事,待弄明白了再來改這里(TODO)



    編譯開關之四
    Java代碼 復制代碼
    1. -c   
    2.     只編譯,不鏈接;簡單點說就是只生成.o文件,不生成可執行文件   
    3.   
    4. -Ipath   
    5.     指定import路徑;多個路徑之間用分號(;)分割;允許有多個-I,并按照-I指定的路徑順序進行搜索   
    6.   
    7. -Jpath   
    8.     指定D源程序中import表達式的搜索路徑;多個路徑之間用分號(;)分割;   
    9.     允許有多個-J,并按照-J指定的路徑順序進行搜索   
    10.   
    11. -Llinkerflag   
    12.      把linkerflag傳遞給連接程序(linker),比如: -L-L/usr/lib   
    13.   
    14. -o-   
    15.     不生成.o文件,一般和-H、-D一起使用   
    16.   
    17. -offilename   
    18.     指定輸出文件名;可以是可執行程序,也可以是其他文件;注意是:-of   
    19.   
    20. -odobjdir   
    21.     把.o文件生成到objdir目錄;默認是生成到當前目錄;注意是:-od   
    22.   
    23. -op   
    24.     默認生成的object文件(.o)會在當前目錄;添加-op參數則會生成到源文件所在目錄  


    -c
    Java代碼 復制代碼
    1. dmd debug.d     # 生成debug可執行文件   
    2. dmd -c debug.d  # 生成debug.o文件  

    dmd編譯器默認是編譯成.o文件后,再和其他庫連接成可執行文件;
    某些情況下不需要編譯成可執行文件,比如沒有main函數--也編譯不成
    這時就可以只編譯成.o文件

    bud等程序build工具,可以自動判斷文件是否有main函數,并生成相應的文件;
    但dmd編譯器不是這樣的;所以,熟悉了dmd編譯器后,可以只使用bud等工具來編譯程序

    -I / -J
    Java代碼 復制代碼
    1. import std.stdio;               // -I   
    2. void main()   
    3. {   
    4.     auto b = import("x.d");     // -J   
    5. }  


    自己體會它們的用途吧:)
    注意:如果在搜索路徑下有同名文件的話,可能出現奇怪的問題;避免出現這種情況,或者改變參數的順序

    -Llinkerflag
    一般是-L-L 和 -L-l參數,指定lib路徑和庫文件
    比如:-L-L/usr/local/lib  -L-lsqlite3
    對linker不熟悉,回頭在詳細寫這塊

    -o-
    如果只想生成文檔,連.o文件都不想要;則-o- 就是你想要的了

    -offilename
    默認情況下,是根據源文件名來確定后續文件的文件名;
    比如foo.d 會生成 foo.ofoo 文件;
    通過-of參數可以改變輸出文件的名字:
    dmd -ofbar.exe foo.d

    它不會自動添加后綴:
    dmd -c -ofbar foo.d
    生成文件是 bar,而不是bar.o,這可能不是你想要的

    -odobjdir -op
    .o文件默認生成在當前目錄下;
    -od 是指定生成目錄,-od.和默認相同
    -op 是把.o生成到源文件所在目錄
    具體生成到什么目錄下,就看自己的愛好了;
    喜歡干凈,就用-od吧;對了,-run參數能生成更干凈的代碼;)

    編譯開關之五
    Java代碼 復制代碼
    1. -O   
    2.     優化生成的代碼,使程序運行得更快   
    3.   
    4. -g   
    5.     添加調試信息   
    6.   
    7. -gc   
    8.     添加C風格的調試信息(為舊的gdb)   
    9.   
    10. -inline   
    11.     用內聯函數的方式進行優化;相當于C的inline   
    12.   
    13. -fPIC   
    14.     生成位置無關代碼   
    15.   
    16. -d   
    17.     允許廢棄的特征   
    18.   
    19. -profile   
    20.     profile the runtime performance of the generated code    
    21.     參見:http://www.digitalmars.com/ctg/trace.html  


    這幾個參數,要么很簡單,要么不懂含義;也懶得去研究具體的意思了。
    其中的-g參數涉及到使用調試器;我喜歡用writefln調試;唉,回頭再研究吧。


    編譯開關之六
    Java代碼 復制代碼
    1. --help   
    2.     打印幫助   
    3.   
    4. -quiet   
    5.     安靜模式,不輸出無關緊要的信息   
    6.   
    7. -v   
    8.     顯示編譯細節   
    9.   
    10. -w   
    11.     顯示編譯警告  


    編譯開關之七
    Java代碼 復制代碼
    1. -run srcfile args...   
    2.     編譯,鏈接,然后運行程序srcfile;args...(到命令行結束)都是程序的參數;   
    3.     它不會保留.o和可執行程序(No .o or executable file is left behind)  


    文章開始就有怎么使用的例子
    需要注意的是參數的順序,因為很多寫法都是錯誤的,正確的是:
    Java代碼 復制代碼
    1. dmd 相關文件 編譯開關 -run 含main的源文件 程序參數1 程序參數2  

    各種參數放在-run前面,然后是含有main的源程序,再后面的內容會全部傳遞給運行程序,作為參數

    鏈接Linking
    在dmd編譯成功后,它會再調用連接程序;用-c參數可以不進行連接
    連接的實際處理程序其實是gcc;這樣能保證和gcc編譯的模塊兼容


    環境變量
    CC
    默認是用gcc進行連接,可以通過設置CC環境變量,使用其他連接器

    DFLAGS
    The value of DFLAGS is treated as if it were appended to the command line to dmd.
    沒有弄明白它是怎么回事;(

    dmd.conf初始化文件
    dmd會按照下面的目錄順序查找
    1. 當前工作目錄
    2. 環境變量HOME指定的目錄
    3. dmd命令所在目錄,即bin目錄
    4. /etc目錄


    dmd.conf的內容看起來像這樣:
    Java代碼 復制代碼
    1. ; dmd.conf 是dmd的配置文件   
    2. ; 分號是注釋符號   
    3. ; %%包含的名字會用相應的環境變量替換   
    4. ; %@P%會被本文件的路徑替換,即dmd.conf文件所在路徑   
    5. [Environment]   
    6. DFLAGS="-I%@P%/../src/phobos"  
    7. DDOCFILE=candydoc/proj.ddoc  


    格式是 NAME=value;NAME即使是小寫,也會被處理成大寫;
    里面的DFLAGS的值會覆蓋環境變量指定的值

    和Windows版本的區別
    • 字符串文章量是只讀的;對它寫會導致段錯誤
    • 配置文件是dmd.conf,而不是sc.ini
    • Windows有一個@cmdfile開關
    • Windows有一個-nofloat開關
    • 環境變量上有些不一樣


    總結:
    和gcc比起來,參數少多了 ;)
    雖然可以用bud進行編譯,但理解dmd還是必要的。
    反正也不復雜,花點時間學習一下還算值得。
     

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 超碰免费在线观看 | 日韩一二三区视频 | 国产做a爱片久久毛片 | 国产老头老太作爱视频 | 97成人在线免费视频 | 毛片视频播放 | 国产精品久久久久久久福利院 | 欧美日韩视频在线观看一区 | 伦理午夜电影免费观看 | 久久99深爱久久99精品 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 一级做a爰片性色毛片 | h网站在线观看 | 国产成人免费视频 | 国产一级做a爰片在线看免费 | 国产亚洲一区二区三区在线观看 | 午夜av影视 | 女男羞羞视频网站免费 | 亚洲不卡高清视频 | 成人午夜免费视频 | 国产伦精品一区二区三区四区视频 | 国产一区二区三区在线免费观看 | 日本高清中文字幕 | 国产日韩欧美亚洲 | 国产精品久久久久久久久久久久 | 成人免费毛片aaaaaa片 | 日本三级在线观看中文字 | 免费看91 | 九九色影院 | 日韩av电影网 | 在线亚洲一区二区 | 久久久久亚洲精品 | 国产色区 | 狠狠躁日日躁夜夜躁东南亚 | 国产超碰人人爽人人做人人爱 | 久久一| 99re6热在线精品视频播放 | 日韩欧美在线播放视频 | 91久久久久 | 国产福利免费视频 | 国产一区二区在线电影 | 天天射天天干 | 国产精品美女久久久久久久久久久 | 久久亚洲一区二区三 | 久久久久综合狠狠综合日本高清 | 在线看片福利 | 日本激情视频一区二区三区 | 自拍第一页 | 小川阿佐美88av在线播放 | 国产视频大全 | 亚洲欧洲成人 | 操操操小说 | 欧美精品网 | 中文字幕第33页 | 一本色道精品久久一区二区三区 | 欧美精品在线观看 | 欧美日韩一区免费 | 色乱码一区二区三区网站 | 午夜av在线| 精品国产不卡一区二区三区 | 一区二区三区精品 | 欧美视频一二三区 | 欧美精品一区二区三区在线 | 国产精品网站在线 | 亚洲最黄视频 | 欧美国产精品一区 | 成人福利视频 | 欧美一区二区三区 | 久久精品1区 | 国产专区一区二区三区 | 成人免费一区二区三区视频网站 | 欧美性受 | 久久精品一区二区三区四区 | 午夜成人免费视频 | 久久精品国产视频 | 精品国产乱码久久久久久久软件 | 欧美日韩精品网站 | 久久99深爱久久99精品 | 久久成人高清 | 久久久久国产一区二区三区四区 | 国产精品成人在线观看 | 日韩色综合 | 亚洲精品久久久久久一区二区 | 亚洲大尺度网站 | 黄色一级毛片 | 范冰冰一级做a爰片久久毛片 | 亚洲色图在线播放 | 97伦理网| 精品国产乱码一区二区三 | 黄色片视频在线观看 | 久久国产精品一区二区 | 欧美日韩在线视频观看 | 久草在线青青草 | 日韩专区中文字幕 | av在线免费观看网站 | 国产精品久久一区性色av图片 | 精品一区不卡 | 日韩在线视频中文字幕 | 人人人人人你人人人人人 | 国产精品久久一区二区三区 | 午夜影院在线观看免费 | 国产 日韩 一区 | 亚洲精品一区二区三区在线 | 欧美理论片在线观看 | 国产一区二区在线播放 | 欧美视频在线观看一区 | 日本精品久久久一区二区三区 | 日本三级电影免费 | 91资源在线 | 色综合一区 | 一区二区三区不卡视频 | 国产免费观看一区二区三区 | 一区二区久久 | 国产99久久精品一区二区永久免费 | 玖玖国产精品视频 | 日韩视频在线免费观看 | 日本一二三区视频 | 久久人爽 | av影音 | 成人在线国产 | 欧美黄色a视频 | 欧美精品日韩 | 黄色影片网址 | 欧美午夜精品一区二区三区电影 | 一级大片一级一大片 | 中文字幕国产 | 日韩精品一区二区三区在线 | 自拍视频在线观看 | 亚洲 中文 欧美 日韩 在线观看 | 日韩欧美在线视频 | 日韩在线播放一区 | 亚洲a人 | 国产高清精品一区 | 91社影院在线观看 | 成人免费在线电影 | 在线视频 欧美日韩 | 国产精品久久久久毛片软件 | 亚洲视频在线观看免费 | 99精品视频在线免费观看 | 国产成人精品久久久 | 国产91视频一区二区 | 免费毛片在线播放 | 97视频精品 | 五月激情婷婷六月 | 欧美一区二区三区成人 | 久久久久无码国产精品一区 | 久久综合久久久 | 成人高清视频在线观看 | 欧美一级毛片久久99精品蜜桃 | 黄色精品视频 | 精品久| 亚洲第一免费网站 | 中文无码久久精品 | 男女羞羞视频免费在线观看 | 在线视频久久 | 在线一级视频 | 国产成人aaa| 国产精品大片 | 日本在线播放 | 欧美视频在线播放 | 99精品免费视频 | 亚洲欧洲精品一区二区 | 亚洲一区二区在线播放 | 国产精品毛片久久久久久久 | 久久国产精品久久久久久电车 | 久久国产精品免费一区二区三区 | 中文字幕二区 | 国产精品久久久久一区二区三区 | 国产午夜精品久久 | 久久久久成人精品 | 欧美日韩福利视频 | 日韩国产在线 | 香蕉婷婷 | 国产二区在线播放 | 色综合久久久久综合99 | 久久e久久 | 欧美精品一区二区三区中文字幕 | 北条麻妃国产九九九精品小说 | 在线观看免费视频91 | 国内精品在线视频 | 国产精品久久 | 国产精品女教师av久久 | 日日摸天天做天天添天天欢 | 欧美影院 | 欧美色爽 | 香港黄色录像片 | 亚洲第一视频网站 | 华丽的挑战在线观看 | 在线观看91 | 黄网站免费在线观看 | 日韩中文字幕在线免费 | 中文字幕_第2页_高清免费在线 | 精品一区二区视频 | 久久9久久| 国产精品一区二区在线 | 亚洲中出 | 日本黄色激情片 | 黄色片在线观看视频 | 日韩色av| 四虎5151久久欧美毛片 | 日韩在线不卡 | 99久久精品国产一区二区成人 | 黄色一级网站 | 日韩在线中文字幕 | 日韩成人av在线 | 97久久香蕉国产线看观看 | 偷拍自拍第一页 | 男人久久天堂 | 亚洲精品v | 美女视频黄色片 | ririsao久久精品一区 | 国产精品一区av | 色综合久久久 | 怡红院成人影院 | 在线观看成人 | 亚洲精品国产精品国自产 | 亚洲视频中文字幕 | 一区二区精品 | 欧美视频免费在线 | 电家庭影院午夜 | 毛片免费观看视频 | 激情一区二区三区 | 欧美日韩高清不卡 | www.久久| 国产免费一区二区三区网站免费 | 欧美日韩在线电影 | 亚洲性生活免费视频 | 欧美不卡 | 日韩视频中文字幕在线观看 | 日韩在线观看一区 | 国产传媒日韩欧美 | 日本免费三片免费观看 | 毛片站| 男人电影天堂 | 国产免费一区二区三区 | 国产不卡视频在线观看 | 96久久久| 日韩第一页 | 亚洲一区在线日韩在线深爱 | 色婷婷综合网 | 成人福利在线观看 | 国产综合亚洲精品一区二 | 午夜精品一区二区三区在线视频 | 五月婷婷导航 | 国产精品视频导航 | 欧美日韩视频在线 | a级在线 | 日韩福利在线观看 | 无套内谢孕妇毛片免费看红桃影视 | 午夜精品久久久久久久久久久久 | 欧洲精品在线观看 | 欧美日韩国产精品一区二区亚洲 | 99国产精品久久久久久久成人热 | 欧美精品一二三区 | 久久综合网址 | 国产亲子乱弄免费视频 | 国产一级视频 | 欧美一区二区三区在线观看 | 伊人免费在线观看高清版 | 国产依人| 麻豆久久久久久 | 黄色大片免费网址 | www.伊人网 | 欧美一级二级片 | 夜夜草视频 | 日本高清无卡码一区二区久久 | 波多野结衣先锋影音 | 亚洲国产精品一区二区久久 | 成人av免费观看 | 久久亚洲精品中文字幕 | 九九精品视频在线观看 | 午夜精品福利一区二区三区蜜桃 | 国产伦精品一区二区三区四区视频 | 日韩国产一区二区三区 | 三级欧美在线观看 | 欧美精品一区二区三区蜜桃视频 | www日韩| 国产精品毛片久久久久久久 | 亚洲欧美日韩国产综合 | 欧美激情在线免费观看 | 国产精品高清在线 | 久久久精品久久久久久 | 999精品嫩草久久久久久99 | 久久亚洲综合 | 日韩视频―中文字幕 | 国产一区二 | 国产综合视频 | 国产一区a | 精品电影 | 精品国产一区二区三区av片 | 亚洲第一免费网站 | 青青久久av北条麻妃海外网 | 亚洲三区在线观看 | 涩涩999| 日韩成人免费视频 | 中文字幕亚洲欧美日韩在线不卡 | 一区二区三区在线免费播放 | 日韩在线精品视频 | 国产免费视频 | 亚洲国产精品久久久久婷婷老年 | 在线欧美视频 | 色综合一区二区三区 | 亚洲国产精品99久久久久久久久 | 久久成人在线视频 | 成人国产精品久久久 | 黄色一级网站 | 日日操视频 | 爽死777影院 | 欧美1级| 成人欧美一区二区三区黑人孕妇 | 久久黄色片 | 午夜免费小视频 | 日本一区二区高清不卡 | 久久久国产一区二区三区四区小说 | 91久久精品国产91久久性色tv | 91免费看 | 日本一区二区三区在线视频 | 精品亚洲一区二区三区 | 亚洲福利一区二区 | 久久99这里只有精品 | 99re国产| av网站网址| 国精产品一区二区三区 | 国产视频一区二区三区四区 | www狠狠干 | 日韩精品一区二区三区在线观看 | 黄色一级视频 | 欧美日韩专区 | 91免费视频观看 | 欧美在线观看免费观看视频 | 91捆绑91紧缚调教91 | 久久久久精 | 亚洲精品乱码久久久久久国产主播 | 日韩欧美成人影院 | 一区二区三区在线免费观看 | 国产精品第一 | 欧美日韩国产一区二区 | 日日干夜夜干 | 在线免费观看激情视频 | 中文字幕乱码一区二区三区 | 欧美日韩在线精品 | 激情婷婷综合 | 日本中文在线 | 国产亚洲久久 | 影音先锋资源av | 中文字幕视频免费观看 | 国产乱码精品一区二区三区爽爽爽 | 亚洲天堂一区二区 | 狠狠伊人| 99久久精品国产一区二区三区 | 久久的爱 | 日韩成人在线播放 | 最新国产在线视频 | 国产亚洲欧美一区二区三区 | 精品av| 国产欧美高清在线观看 | 亚洲精品亚洲人成人网 | 久久69精品久久久久久久电影好 | 国产xvideos免费视频播放 | av中文字幕第一页 | 色婷婷亚洲一区二区三区 | 国产精品久久综合 | 九九热精品免费视频 | 黄色电影在线免费观看 | 狠狠搞狠狠搞 | 精品欧美乱码久久久久久 | 天天干天操| 久久国产一区二区 | 国产精品欧美一区二区三区 | 精品护士一区二区三区 | 国产精品亚洲视频 | 色九九 | 午夜精品福利在线观看 | 国产精品成人品 | 精品国产乱码一区二区三区四区 | 亚洲a在线观看 | 欧美日韩在线一区二区 | 日本一区高清 | 久久综合久色欧美综合狠狠 | 99国产精品99久久久久久 | 一区二区免费视频 | 看毛片网站 | 日韩午夜场 | 国产精品久久久久久亚洲影视 | av77| 久久国产一区 | 欧美精品日韩 | 亚洲国产成人av | 久久ri资源网 | 国产中文一区 | av久久| 亚洲影视一区 | 伊人久色 | 97伦理电影院 | 色综合久| 日韩欧美精品一区二区三区 | 久久综合狠狠综合久久综合88 | 大黄网站在线观看 | 在线免费视频成人 | 国产日韩欧美一区 | 麻豆91在线观看 | 成人欧美一区二区三区白人 | 欧美日韩干| h视频在线免费观看 | 午夜电影 | 日韩免费高清视频 | 久久男女视频 | 秋霞av电影| 久草新 | 91精品国产九九九久久久亚洲 | 欧美日韩视频在线播放 | 亚洲成人av | 日韩一区二区三区在线视频 | 羞羞视频免费观看 | 精品91在线| 81精品国产乱码久久久久久 | 台湾佬成人 | 日韩人体在线 | 成年视频在线观看福利资源 | 日韩欧美在线免费观看 | 久久久一二三 | 欧美性大战久久久久久久蜜臀 | 日韩精品 电影一区 亚洲 | 国产精品成av人在线视午夜片 | 99视频精品在线 | 成人精品在线观看 | av影片在线播放 | 亚洲 成人 av | 九九久久精品视频 | 精品视频成人 | 久久叉 | 亚洲一区二区三区四区五区中文 | 亚洲精品电影在线观看 | 日韩欧美视频在线 | 天天干天天操 | 日本一区二区三区中文字幕 | 亚洲精品久久久久999中文字幕 | 国产一区精品电影 | 欧美一区二区三区爽大粗免费 | 国产精品国产三级国产aⅴ 精品91 | 国产精品九九九 | 成年人福利 | 蜜臀91精品国产高清在线观看 | 毛片一区二区三区 | 亚洲免费视频网站 | 狠狠综合久久av一区二区小说 | 可以免费在线观看av的网站 | 天天操狠狠操 | 亚洲精品久久久久久久久久久 | 国产精品视频一区二区三区四 | 凹凸日日摸日日碰夜夜爽孕妇 | 久久一区 | 精品免费一区二区 | 一级性视频 | 人人干人人干 | 国产高清在线不卡 | 午夜激情免费在线观看 | 黄色免费一级 | 97视频久久久 | 精品在线不卡 | 精品一区二区不卡 | 久久人人爽爽爽人久久久 | 免费观看日韩一级片 | 免费激情av | 天天网 | 一本色道精品久久一区二区三区 | 欧洲亚洲精品久久久久 | 中文字幕在线视频精品 | 精品一区二区av | 一级全黄少妇性色生活片毛片 | 久久三区| 成人午夜剧场 | www.久久99| 精品久久一区二区 | 亚洲成人精品在线观看 | 免费久久久久 | 日本激情视频一区二区三区 | 国产一区不卡视频 | 操操操av| 国产1页| 国产精品久久久久久久久久妞妞 | 国产美女在线观看 | 欧美日韩亚洲国产综合 | 精品一区二区电影 | 9999国产精品欧美久久久久久 | 午夜久久久久 | 国产精品久久久久久久久久 | 国产精品久久久久久一区二区三区 | 亚洲欧美日韩国产 | 九色91| 日韩在线成人 | 黄色免费在线观看 | 亚洲国产天堂久久综合 | 精品国产乱码久久久久久1区二区 | 一区二区三区国产 | 日韩美女av在线 | 国产成人久久精品一区二区三区 | 久久精品一 | 成人一区二区三区在线观看 | 一级在线观看视频 | 国内精品国产成人国产三级粉色 | 天天干夜夜骑 | 一级特黄aaa大片在线观看 | 欧美激情a∨在线视频播放 中文字幕网在线 | 久久精品国产亚洲一区二区三区 | 国产精品久久久久久久久久免费看 | 亚洲精品一区久久久久久 | 伊人网在线 | 亚洲精品久久久久久久久久久久久 | 久久av一区二区三区亚洲 | 日韩国产在线 | gav成人免费播放视频 | 在线视频 亚洲 | 一区二区三区影院 | 国产高清一区二区 | 色婷婷综合在线 | 日韩成人一区 | 亚洲欧美在线观看 | 国产一区二区精品在线观看 | 亚洲香蕉精品 | 精品人伦一区二区三区蜜桃视频 | 艹逼逼视频 | 国产精品久久久久久久久免费 | 色综合中文 | 日韩国产高清在线 | 欧美日本韩国一区二区 | 亚洲久久 | 欧美日韩亚洲一区二区 | 综合视频一区二区三区 | 亚洲 中文 欧美 日韩 在线观看 | 91麻豆精品国产91久久久资源速度 | 久久爱电影 | 亚洲精品国产9999久久久久 | 国产免费高清 | 98精品国产高清在线xxxx天堂 | 国产婷婷在线视频 | 国产成人免费视频网站高清观看视频 | 精品一区二区三区四区五区 | 国产高清精品一区二区三区 | 日本久久精品视频 | 精品1区| 日本欧美久久久久 | 99爱精品在线| 国产一级视频 | 亚洲国产一区二区三区在线观看 | 成人精品鲁一区一区二区 | 日韩国产一区二区三区 | 国外成人在线视频网站 | 成人免费福利视频 | 美国一级毛片a | 日韩国产欧美一区 | 在线视频日韩 | 97精品国产97久久久久久免费 | 精品日韩av| 国产成人精品一区二 | 最新精品在线 | 日本黄色片免费看 | 在线一级片 | 久久99精品久久久 | www.久久久| 日日日日日 | 四虎影院最新地址 | 国产精品久久久99 | 国产一区二区三区网站 | 欧美日本久久 | 日p视频免费看 | 日韩精品一区二区三区在线 | 在线中文字幕日韩 | 国产精品久久久久久久久久免费看 | 国产精品99久久久久久久久久久久 | 久久香蕉国产 | 中文字幕一区二区三区四区 | 亚洲二区视频 | 日本久久网 | 欧洲亚洲精品久久久久 | 国产成人精品一区二区三区四区 | 自拍偷拍第一页 | 久久99国产精品久久99果冻传媒 | 精品一区二区不卡 | 日韩中文一区二区三区 | 亚洲国产成人久久一区二区三区 | 欧美电影一区 | 亚洲午夜精品片久久www慈禧 | 中文字幕在线免费 | 欧美一级艳片视频免费观看 | 国产午夜久久 | 午夜影院18 | 日本精品一区二区三区视频 | 日韩在线播 | 一区中文字幕 | 久久久久久一区 | 精品二区| 国产精品一区二区三区在线 | 欧美精品一区二区三区一线天视频 | 久久国内精品 | 午夜电影网站 | 一区二区三区久久 | 欧美夜夜骑 | 日韩成人av在线 | 日韩精品免费在线视频 | 欧美三级电影在线播放 | av免费在线观看网站 | 精品美女一区 | 欧美一区不卡 | 国产四区 | 亚洲精品久久久久久久久久久 | 在线视频中文字幕 | 国产成人午夜精品5599 | 欧美三级网址 | 黄毛片视频 | 亚洲精品久久久久久一区二区 | 日本成人黄色网址 | 久久免费精品 | 国产黄色免费视频 | 成人蜜桃视频 |