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

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

Dmd編譯器學習筆記
2010-01-13 22:54:06  作者:  來源:
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還是必要的。
    反正也不復雜,花點時間學習一下還算值得。
     

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
相關熱詞搜索:編譯器 筆記 學習
主站蜘蛛池模板: 成人精品一区二区三区 | 一区二区日韩欧美 | 亚洲精品视频在线 | 亚洲三级视频 | 99国产精品久久久久久久久久 | 精品成人在线 | 久久99精品久久久久久园产越南 | 看亚洲a级一级毛片 | 日韩色综合 | 日韩国伦理久久一区 | 一区二区三区回区在观看免费视频 | 精品九九九 | 日韩精品小视频 | 欧美激情一区二区三区 | 精品二区| av免费在线观看网站 | 国产一区二区三区免费 | 国产精品色综合 | 国产精品777| 色av一区| 一级免费毛片 | 中文字幕av在线 | 日韩在线免费 | 中文字幕一二三区 | 午夜伦理影院 | 一区二区三区国产精品 | 99久久久成人国产精品 | 久久国产欧美日韩精品 | 国产一级片a | the蜜臀av入口| 精品在线一区 | 亚洲精品久久久久久久久久久久久 | 国产一级免费在线观看 | 国产在线精品一区二区三区 | av中文在线 | 永久免费网站 | 日本三级在线视频 | 国产精品美女久久久久久久网站 | h视频免费观看 | 视频在线一区 | 日韩av电影在线免费观看 | 亚洲欧美日韩在线一区 | 日日干夜夜干 | 亚州中文| 一区二区三区国产在线 | 97国产超碰 | 成人欧美日韩一区二区三区 | 日韩精品 电影一区 亚洲 | 精品96久久久久久中文字幕无 | 免费看男女www网站入口在线 | 日本一区二区不卡 | 欧美理论片在线 | 国产女人网 | 国产精品久久久久久久久免费桃花 | 亚洲一区二区三区四区在线观看 | 亚洲一区二区av | 夜夜夜久久久 | 青青久久 | 成人欧美一区二区三区黑人孕妇 | 久草免费在线 | www中文字幕 | 精品久 | 成人一区二区三区在线观看 | 99青青草 | 欧美 日本 国产 | 成人精品福利视频 | 亚洲精品电影 | 开操网 | 三级精品| 午夜免费 | 亚洲精品乱码久久久久久 | 午夜精品久久久久久久男人的天堂 | 噜噜噜噜狠狠狠7777视频 | 亚洲国产精品一区二区久久 | 韩国精品视频在线观看 | 国产精品视频久久久 | 欧美成人黄色小说 | 欧美久久一区二区三区 | 国产在线网 | 国产成人在线网站 | 韩国精品主播一区二区在线观看 | 综合精品 | 久久在线| 日韩国产精品一区二区三区 | 一级免费片 | 欧美日韩国产一区二区三区不卡 | 波多野结衣一区在线观看 | 亚洲成av人片一区二区梦乃 | 中文字幕亚洲欧美日韩在线不卡 | 国产精品乱码一区二区三区 | 91精品国产福利在线观看 | 一级毛片免费在线 | 欧美在线观看视频 | 成人三级网址 | 久久人人网 | 日韩一二区| 欧美人人 | 中文字幕在线网址 | 在线亚洲免费 | 午夜看片| 国产精品一区在线看 | 色综合久久久久 | 成人免费一区二区三区视频软件 | 亚洲精品乱码久久久久久花季 | 国产精久久一区二区三区 | 美女视频黄色 | 国产精品久久精品 | 国产一区二区三区四区三区 | 精品国产污网站污在线观看15 | 国产美女高潮视频 | 97精品在线| 91精品国产欧美一区二区成人 | www久久九 | 久久婷婷国产麻豆91天堂 | 亚洲视频一区二区在线 | 国产免费av在线 | 国产一区二区精品在线观看 | 国产网站在线 | 日日久 | 亚洲一区二区中文字幕 | 叶山小百合av一区二区 | 国产中文字幕在线 | 最新国产中文字幕 | 国精产品99永久一区一区 | 国产精品美女久久久久久久网站 | 噜噜噜噜狠狠狠7777视频 | 日韩欧美在线观看 | aaa级片| 日韩中文字幕一区二区高清99 | 亚洲高清电影 | 中文字幕精品三级久久久 | 日韩手机在线观看 | 欧美高清成人 | 在线免费观看激情视频 | 久久久久久精 | 精品久久一二三区 | 亚洲一区av| 国产高清小视频 | 久久99久久久久久 | 久久精品免费看 | 久热av在线 | 免费福利视频一区 | 精品久久久久久 | 北条麻妃国产九九九精品小说 | 亚洲精品自拍 | 亚洲成人基地 | 性培育学校羞耻椅子调教h 欧美精品网站 | 国产99999 | 欧美日韩国产一区二区三区 | 午夜精品一区二区三区在线观看 | 亚洲第一av| 九色在线 | 久久精品这里只有精品 | 日韩9999| 成人在线观看h | 欧洲一级黄 | 91精品国产aⅴ | 久草免费在线视频 | 一区二区中文 | 日日操狠狠操 | 国产黄色影视 | 亚洲欧美日韩在线一区二区三区 | 91精品一区二区 | 天天天干夜夜夜操 | 中文字幕亚洲欧美 | 特级丰满少妇一级aaaa爱毛片 | 国产片一区二区三区 | 91一区在线 | 国产精品久久国产精品 | aaa级片| 精品九九九 | 日韩欧在线| 第一色网站 | 亚洲综合第一页 | 亚洲视频久久久 | 欧美精品一区二 | 国产黄色大片免费观看 | 中文字幕第80页 | 亚洲伊人久久综合 | www.99精品 | 国产a视频| 国产毛片a级 | 日韩成人影院 | 不卡视频一区 | 国产乱叫456 | 国产精品久久久久久福利一牛影视 | 黄色免费网 | 成年免费视频 | 亚洲精品福利 | 免费一区二区三区 | 色网在线观看 | 国产激情网 | 成人免费精品视频 | 成人激情视频在线免费观看 | 国产91富婆养生按摩会所 | 久久人人爽人人爽人人片av不 | 亚洲国产精品久久久久秋霞不卡 | 99在线精品视频 | 1000部精品久久久久久久久 | 女人色网| 国产精品久久国产精品99 gif | 久久国产精品久久久久久 | 欧美一级片在线 | 国产在线精品视频 | 蜜臀91精品国产高清在线观看 | 99r在线| 国产高清美女一级a毛片久久 | 日韩精品视频在线观看免费 | 四虎首页| 久久精品高清视频 | 日本色网址 | 国产精品视频一二三区 | 国产精品一区二区三区久久 | 国产日韩精品在线观看 | 黄色片免费看. | av日韩在线播放 | www.中文字幕 | 国产精品1区 | 成人免费视频网 | 91香蕉视频在线观看 | 亚洲人人 | 在线观看av国产一区二区 | 亚洲免费在线视频 | 精品亚洲网 | 狠狠躁天天躁夜夜添人人 | 成人免费淫片aa视频免费 | 亚洲视频在线观看免费 | 一色屋精品久久久久久久久久 | av 一区二区三区 | 国产精品久久国产精品 | 亚洲444kkkk在线观看最新 | 国产综合视频 | 亚洲国产精品自拍 | 国产精彩视频 | 日韩专区一区二区三区 | 日韩av高清在线 | 亚洲一区二区三区免费观看 | 亚洲狠狠爱一区二区三区 | 国产欧美综合一区二区三区 | 操操日 | 一级毛片电影 | 日本精品视频在线观看 | 精品国产一区二区三区不卡蜜臂 | 精品视频在线观看一区二区 | 精品国产一区二区三区久久久久久 | 私人毛片免费高清视频 | 日韩欧美三区 | 美日韩成人| 国产精品一区二区久久久 | 国产精品欧美久久久久一区二区 | 国产人妖一区二区 | 成人性生交大片免费看中文带字幕 | 国产色播av在线 | 九色91九色porny永久 | 午夜精选视频 | 日本欧美一区二区 | a级性视频 | 91国自产精品中文字幕亚洲 | 三级黄色在线视频 | 精品国产一区二区三区免费 | 日日爱夜夜操 | 亚洲精品久久一区二区三区 | 一区二区三区免费av | 日韩视频在线视频 | 久久久久久免费毛片精品 | av免费在线观看网站 | 一级电影免费在线观看 | 国产精品欧美一区二区三区 | www国产亚洲 | 日韩在线不卡 | 亚洲精品一区二区网址 | www.久久久.com| h片在线 | 欧美精品1区 | 欧美视频三区 | 国产视频久久久久久 | 日韩视频网站在线观看 | 国产毛片aaa | 国产精品久久久久久久一区探花 | 亚洲成人在线观看视频 | 五月婷婷综合激情 | 久久9999久久 | 日韩精品视频免费看 | 国产精品日韩专区 | 在线看国产 | 亚洲高清视频在线 | 成人免费观看视频 | 亚洲骚片 | 精品免费一区二区 | 欧美激情精品久久久久久免费 | 国产一区二区三区精品久久久 | 国精品产品区三区 | 亚洲成人av | 成人午夜性a一级毛片免费看 | 亚洲国产激情 | 国产一级一级特黄女人精品毛片 | 一级欧美| 91社区在线播放 | 国产视频成人 | 国产精品毛片久久久久久久 | 老妇激情毛片免费 | 无码日韩精品一区二区免费 | 一级欧美一级日韩片 | 不卡一区二区三区视频 | 一区二区免费在线视频 | 日日日日日 | 天堂一区二区三区 | 日韩免费视频 | 成人在线免费观看 | 成人伊人| 剑来在线观看 | 狠狠91| 不用播放器的毛片 | 国产99在线 | 欧美 | 色爽av | 久久精品欧美一区二区三区不卡 | 日韩在线免费观看视频 | 国产视频一区二区 | 亚洲精品久久一区二区三区 | 亚洲网站在线观看 | 久久精品网 | 日本一区二区电影 | 国内精品一区二区 | 毛片一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 米奇成人网 | 国内成人免费视频 | 久久一 | 欧美人牲| 成人国产在线 | 青娱乐国产精品视频 | 国产无区一区二区三麻豆 | 亚洲国产精品自拍 | 欧美一区二区精品 | 影音先锋亚洲精品 | 欧美综合一区 | 亚洲不卡在线观看 | 搞黄视频在线观看 | 精品亚洲一区二区三区 | 亚洲国产精品一区二区三区 | 日韩一区二区三区在线观看 | 艳妇荡乳豪妇荡淫 | 女人高潮特级毛片 | 日韩一区二区在线播放 | 国产色片在线 | 伊人国产精品 | 亚洲第一页中文字幕 | 在线播放一区二区三区 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲精品一区在线观看 | 欧美亚洲性视频 | 日韩精品 | 色婷婷欧美 | 99久久婷婷国产综合精品 | 亚洲一区二区三区四区五区中文 | 国产精品国产三级国产aⅴ中文 | 国产91一区| 国产一区a | 99久久国产综合精品女不卡 | 免费视频久久久久 | 91免费看| 国产精品a一区二区三区网址 | 9久久婷婷国产综合精品性色 | 丁香六月av| 天天干天天操 | 91人人爽人人爽人人精88v | 亚洲一区中文字幕 | 久久久久中文字幕 | 一区二区三区国产好的精 | 亚洲欧洲综合av | 成人小视频在线观看 | 99国产精品99久久久久久 | 亚洲a在线观看 | 天天干网 | 欧美日韩视频 | 久久久久亚洲一区二区三区 | 久久这里精品 | 99热激情| 午夜在线视频免费观看 | 亚洲国产精品99久久久久久久久 | 久久久成人精品 | 日韩欧美在线一区 | 亚洲成人日本 | 欧美日韩一区二区三区 | 亚洲第一av | 久久综合九色综合欧美狠狠 | 天天综合天天色 | 亚洲国产精品一区二区久久,亚洲午夜 | 一区二区免费在线播放 | 天天操网 | 久久兔费看a级 | 操人网站| 人人干人人干人人干 | 嫩草影院黄色 | 91.com在线观看 | 亚洲成人免费 | 国产一区在线看 | 久草青青 | 国内久久| 成人二区 | 欧美一区二区三区在线观看视频 | 91视频网 | 亚洲永久免费 | 色综合色综合网色综合 | 亚洲免费视频一区二区 | 成人精品鲁一区一区二区 | 精品国产一区二区在线 | 一区二区三区在线视频播放 | 欧美国产日韩另类 | 欧美aaaaa| 日韩成人一区二区 | 天天干天天爱天天 | 久久青草国产 | 日日综合 | av毛片| 欧美日韩在线免费观看 | 在线亚洲不卡 | 欧美福利在线观看 | 亚洲卡一 | 天天操天天摸天天干 | 成人国产 | 精品www| 在线小视频 | 香港三级日本三级a视频 | 国产精品久久久久久久久久久不卡 | 亚洲成人1区 | 免费的国产视频 | 久久精品 | 精品久久ai | 久久性| 国产视频福利在线观看 | 四虎永久在线观看 | 99久久视频| 国产成人精品免费视频大全最热 | 亚洲特级| 国产视频精品免费 | 激情视频在线观看免费 | 国产精品久久久久久久午夜片 | 91在线免费视频 | 天天摸夜夜操 | 久久国产精品无码网站 | 四虎影院网 | 成人免费网站在线观看 | 成人在线不卡 | 波多野结衣亚洲 | 99视频精品 | 夜夜操操操 | 久久综合久 | 91精品国产欧美一区二区成人 | 午夜免费一区二区播放 | 中文字幕亚洲一区二区va在线 | 亚洲成人av在线 | 日产一区二区 | 男女精品视频 | 一区二区三区四区在线 | 日韩免费视频 | 国产精品中文字幕在线播放 | 亚洲成人免费视频在线观看 | 亚洲激情久久 | 日韩欧美国产一区二区 | 搜索黄色毛片 | 精品亚洲一区二区三区 | 亚洲福利片 | 亚洲成人久久久久 | 另类天堂av | 在线看91 | 超碰人人99 | 99久久久免费视频 | 鲁视频| 日韩一区二区三区在线观看 | 欧美精品一区二区在线观看 | 久久se精品一区精品二区 | 中文字幕一区二区三区四区五区 | 久久99深爱久久99精品 | 丰满少妇久久久久久久 | 精品网站www | 国产精品a免费一区久久电影 | 国产精品美女视频 | 91视频一区二区 | 欧美性猛交一区二区三区精品 | 国产欧美精品一区二区三区四区 | 欧美日本精品 | 岛国免费 | 成年人黄色一级毛片 | 欧洲妇女成人淫片aaa视频 | 欧美日韩精品一区二区三区蜜桃 | 精品中文在线 | 国产噜噜噜噜噜久久久久久久久 | 成人一区二区在线 | 国产高清小视频 | 精品视频一区二区三区 | 午夜精品一区二区三区在线观看 | 国产一区二区三区视频在线观看 | 亚洲成人久久久久 | 成人在线手机版视频 | 99久久婷婷国产精品综合 | 亚洲视频 欧美视频 | 一区二区三区在线播放 | 一卡二卡久久 | 日韩不卡在线 | 亚洲永久免费观看 | 91免费国产 | 精品久久久久久久久久久下田 | 久久中文字幕视频 | 国产一区二区免费 | 免费观看h视频 | 久久草草影视免费网 | 先锋av资源网 | 欧洲成人午夜免费大片 | 免费黄色在线看 | 欧美日一区 | 国产精品永久在线观看 | 久久久一二三 | 日韩精品| 国产中文字幕一区 | 精品欧美一区二区在线观看视频 | 一区二区三区亚洲 | 国产一级特黄毛片在线毛片 | 亚洲国产一区二 | 91夜夜夜| 99视频精品 | 欧美一区永久视频免费观看 | 精品久久久久久亚洲精品 | 精品视频网 | 精品免费国产一区二区三区 | 亚洲成a| 伊人网伊人 | 天天看天天爽 | 自拍亚洲 | 亚洲第一中文字幕 | 91精品国产91久久综合桃花 | 超碰官网 | 欧美一区二区 | 久久成人免费视频 | 亚洲444kkkk在线观看最新 | 欧美.com | 理论片一区| 国产看片网站 | 日本精品一区 | 久久久久久精 | 黑人巨大精品欧美一区二区小视频 | 久久精品网| 天天拍拍天天干 | 欧美日韩精品一区 | 久久国产精品99久久久久久牛牛 | 97国产精品视频人人做人人爱 | 日韩1| 日韩精品一区二区在线观看 | 亚洲一区二区 | 依人成人综合网 | 久久久美女| 精品无人乱码一区二区三区 | 在线中文字幕观看 | 亚洲国产精品久久久 | 欧美高清成人 | 国产精品久久久久久亚洲调教 | 国产成人精品免费 | 久久1区| 成人一区视频 | 最新国产视频 | 免费av播放 | 亚洲一级在线观看 | 中文字幕一区在线观看视频 | 精品久久久久久久久久久 | 久久精品a一级国产免视看成人 | 亚洲激情精品 | 欧美日韩在线精品 | 日韩一区二区三区精品 | 999精品视频 | 一级a性色生活片久久毛片明星 | 午夜天堂精品久久久久 | 国产成人一区二区三区 | 黄色片com | 国产日韩精品一区二区在线观看播放 | 国产精品久久久久久久久久三级 | av自拍 | 日韩国产一区二区三区 | 岛国一区| 在线亚洲成人 | 午夜视频黄 | 干干干操操操 | 亚洲一区二区视频在线播放 | 精品亚洲一区二区三区 | 亚洲成人免费网站 | 欧美一区二区三区精品 | 国产精品亲子伦av一区二区三区 | 国产精品国产三级国产aⅴ9色 | 欧美午夜视频在线观看 | 亚洲 欧美日韩 国产 中文 | 麻豆av在线播放 | 国产精品99久久久久久动医院 | 欧美久久精品 | 午夜国产一区 | 欧美日韩在线播放 | 久久三区| 欧美日韩精品久久久 | 亚洲第一免费视频网站 | 亚洲瑟瑟 | 狠狠干av| 综合久久综合 | 播放毛片 | 天天操天天插 | 日韩视频在线观看一区 | av网站免费看 | 青青草综合在线 | 丁香五月网久久综合 | 国产精品7| 国产视频91在线 | 亚洲综合区 | 黄色小视频在线免费观看 | 精品国产一区av | 97理论片 | 欧美午夜精品久久久久久人妖 | 亚洲精品在线免费观看视频 | 91视频.www |