久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Qt引用路徑配置全解析:編譯、鏈接與運(yùn)行期避坑指南

Qt引用路徑配置全解析:編譯、鏈接與運(yùn)行期避坑指南 1. 從一個(gè)讓人抓狂的編譯報(bào)錯(cuò)說起如果你寫過C尤其是用Qt寫桌面端項(xiàng)目大概率遇到過這種場(chǎng)景代碼在IDE里看著一切正常頭文件路徑有高亮函數(shù)跳轉(zhuǎn)也能用但一按編譯按鈕滿屏的紅色錯(cuò)誤就撲面而來——fatal error: xxx.h: No such file or directory或者鏈接階段突然告訴你undefined reference to xxx。你明明記得這個(gè)庫昨天還能用今天換了個(gè)目錄結(jié)構(gòu)就全崩了。這就是Qt設(shè)置引用路徑問題的典型表現(xiàn)。它不是什么高深的技術(shù)難題但絕對(duì)是消耗開發(fā)者耐心最多的“日常坑”之一。我見過不少工作兩三年的開發(fā)者每次遇到路徑問題還是靠“瞎試”——加個(gè)INCLUDEPATH不行就加LIBSLIBS不行就改.pro文件順序最后碰巧編譯過了但問他為什么能過他說不上來。這篇文章想解決的問題很具體把Qt項(xiàng)目中引用路徑的配置邏輯徹底講清楚。包括頭文件路徑、庫文件路徑、運(yùn)行時(shí)路徑這三類核心路徑分別在什么階段起作用qmake和CMake兩套構(gòu)建系統(tǒng)下怎么配置以及跨平臺(tái)Windows、Linux、macOS時(shí)路徑寫法有什么差異。適合所有正在用Qt做項(xiàng)目、被路徑問題折磨過、或者想提前避坑的開發(fā)者。不管你是剛接觸Qt的新手還是用了幾年但一直沒系統(tǒng)梳理過路徑配置的老手下面這些內(nèi)容應(yīng)該都能幫你省下不少查資料和試錯(cuò)的時(shí)間。2. 為什么路徑配置這么容易出問題2.1 編譯期、鏈接期、運(yùn)行期的路徑是三件不同的事很多人把“引用路徑”當(dāng)成一個(gè)籠統(tǒng)的概念這是所有混亂的根源。實(shí)際上一個(gè)Qt項(xiàng)目從源碼到可執(zhí)行程序路徑在三個(gè)完全不同的階段發(fā)揮作用每個(gè)階段由不同的工具處理配置方式也完全不同。編譯期處理的是頭文件路徑。編譯器需要找到#include指令引用的.h或.hpp文件。這個(gè)階段由INCLUDEPATHqmake或target_include_directoriesCMake控制。如果這里配錯(cuò)了報(bào)錯(cuò)就是fatal error: xxx.h: No such file or directory。鏈接期處理的是庫文件路徑。鏈接器需要找到.lib、.a、.so、.dylib這些二進(jìn)制庫文件把符號(hào)引用解析成實(shí)際地址。這個(gè)階段由LIBSqmake或target_link_librariesCMake控制。配錯(cuò)了就是undefined reference或cannot find -lxxx。運(yùn)行期處理的是動(dòng)態(tài)庫加載路徑。程序啟動(dòng)時(shí)操作系統(tǒng)需要找到它依賴的動(dòng)態(tài)庫。Windows下是.dllLinux下是.somacOS下是.dylib。這個(gè)階段跟構(gòu)建系統(tǒng)沒關(guān)系了取決于系統(tǒng)的庫搜索機(jī)制。配錯(cuò)了就是程序啟動(dòng)時(shí)報(bào)“找不到xxx.dll”或者“error while loading shared libraries”。我剛開始用Qt的時(shí)候最常犯的錯(cuò)誤就是把這三個(gè)階段混在一起。比如編譯通過了、鏈接也通過了但一運(yùn)行就崩潰然后回頭去改INCLUDEPATH完全改錯(cuò)了方向。后來我才養(yǎng)成習(xí)慣看到報(bào)錯(cuò)先判斷是哪個(gè)階段的問題再去改對(duì)應(yīng)的配置。這個(gè)判斷習(xí)慣至少幫我節(jié)省了一半的排查時(shí)間。2.2 qmake和CMake的路徑處理邏輯差異Qt早期項(xiàng)目幾乎都用qmake.pro文件是標(biāo)配?,F(xiàn)在新項(xiàng)目越來越多用CMakeQt官方從Qt6開始也主推CMake。兩套系統(tǒng)處理路徑的邏輯有本質(zhì)區(qū)別不能混著理解。qmake的路徑處理相對(duì)“扁平”。你在.pro文件里寫的INCLUDEPATH ./includeqmake會(huì)把它轉(zhuǎn)換成編譯命令的-I參數(shù)。相對(duì)路徑的基準(zhǔn)是.pro文件所在的目錄。LIBS -L./lib -lmylib同理-L指定庫搜索目錄-l指定庫名。qmake不太區(qū)分“構(gòu)建目錄”和“源碼目錄”相對(duì)路徑的解析規(guī)則比較直觀但也容易在影子構(gòu)建shadow build時(shí)出問題。CMake的路徑處理更“結(jié)構(gòu)化”。它區(qū)分CMAKE_SOURCE_DIR、CMAKE_BINARY_DIR、CMAKE_CURRENT_SOURCE_DIR等多個(gè)路徑變量還有target_include_directories的PUBLIC、PRIVATE、INTERFACE作用域區(qū)分。好處是大型項(xiàng)目管理更清晰壞處是學(xué)習(xí)曲線陡。很多人從qmake轉(zhuǎn)到CMake時(shí)最不適應(yīng)的就是“為什么我寫的相對(duì)路徑找不到文件”——因?yàn)镃Make的相對(duì)路徑基準(zhǔn)可能不是你以為的那個(gè)目錄。提示如果你在CMake項(xiàng)目里用相對(duì)路徑永遠(yuǎn)用${CMAKE_CURRENT_SOURCE_DIR}或${CMAKE_CURRENT_BINARY_DIR}做前綴不要直接寫./xxx。這是我從無數(shù)次“本地能編譯、CI上掛掉”的教訓(xùn)里總結(jié)出來的。2.3 跨平臺(tái)帶來的路徑分隔符和搜索規(guī)則差異Windows用反斜杠\做路徑分隔符Linux和macOS用正斜杠/。雖然Qt和大多數(shù)構(gòu)建工具在內(nèi)部會(huì)做轉(zhuǎn)換但你在.pro或CMakeLists.txt里寫路徑時(shí)最好統(tǒng)一用正斜杠/。qmake和CMake都能正確識(shí)別正斜杠但反斜杠在CMake里是轉(zhuǎn)義字符容易出幺蛾子。更麻煩的是動(dòng)態(tài)庫的搜索規(guī)則。Windows下可執(zhí)行文件會(huì)先在當(dāng)前目錄找.dll然后按PATH環(huán)境變量找。Linux下LD_LIBRARY_PATH環(huán)境變量和/etc/ld.so.conf配置決定搜索路徑當(dāng)前目錄默認(rèn)不在搜索范圍內(nèi)。macOS用DYLD_LIBRARY_PATH和rpath機(jī)制。這些差異導(dǎo)致同一個(gè)項(xiàng)目在不同平臺(tái)上可能需要不同的運(yùn)行時(shí)路徑配置。我做過一個(gè)跨三平臺(tái)的項(xiàng)目最頭疼的就是macOS的rpath。Windows和Linux下配好LIBS就能跑macOS下編譯鏈接都沒問題一運(yùn)行就報(bào)dyld: Library not loaded。后來才搞明白需要在鏈接時(shí)加-rpath參數(shù)把庫的運(yùn)行時(shí)搜索路徑寫進(jìn)可執(zhí)行文件。這個(gè)坑我踩了整整一個(gè)下午查了無數(shù)資料才搞定。3. qmake下的路徑配置實(shí)操3.1 INCLUDEPATH的正確寫法與常見誤區(qū)INCLUDEPATH是qmake里最常用的路徑變量控制編譯器的頭文件搜索路徑?;緦懛ê芎?jiǎn)單INCLUDEPATH ./include INCLUDEPATH ../thirdparty/libxml2/include INCLUDEPATH /usr/local/include/opencv4但這里有幾個(gè)容易踩的坑。第一個(gè)坑是相對(duì)路徑的基準(zhǔn)問題。qmake解析INCLUDEPATH里的相對(duì)路徑時(shí)基準(zhǔn)是當(dāng)前.pro文件所在的目錄不是構(gòu)建目錄。這在影子構(gòu)建時(shí)容易讓人困惑——你的源碼在/home/user/project構(gòu)建目錄在/home/user/project/build.pro里寫INCLUDEPATH ./includeqmake會(huì)解析成/home/user/project/include而不是/home/user/project/build/include。這個(gè)行為其實(shí)是合理的但如果你習(xí)慣了某些IDE的“相對(duì)于構(gòu)建目錄”邏輯就會(huì)覺得別扭。第二個(gè)坑是路徑末尾不要加斜杠。INCLUDEPATH ./include/和INCLUDEPATH ./include在大多數(shù)情況下效果一樣但某些qmake版本或某些平臺(tái)下末尾斜杠可能導(dǎo)致路徑拼接時(shí)出現(xiàn)雙斜杠雖然編譯器通常能處理但看著不舒服也可能在某些工具鏈下出問題。統(tǒng)一不加末尾斜杠是好習(xí)慣。第三個(gè)坑是順序問題。INCLUDEPATH的搜索順序是按添加順序來的。如果你有兩個(gè)目錄下有同名頭文件先添加的目錄會(huì)被優(yōu)先搜索。這個(gè)特性有時(shí)候能救命——比如你想覆蓋某個(gè)第三方庫的頭文件把自己的目錄加在前面就行。但更多時(shí)候它是麻煩的來源——你以為用的是A版本的頭文件實(shí)際上編譯器找到了B版本的。我建議在.pro文件里給INCLUDEPATH加注釋標(biāo)明每個(gè)路徑的用途方便后續(xù)排查。# 項(xiàng)目自身頭文件 INCLUDEPATH $$PWD/src INCLUDEPATH $$PWD/include # 第三方庫頭文件 INCLUDEPATH $$PWD/thirdparty/json/include INCLUDEPATH $$PWD/thirdparty/spdlog/include這里用了$$PWD它是qmake的內(nèi)置變量表示當(dāng)前.pro文件所在目錄的絕對(duì)路徑。用$$PWD代替.的好處是路徑永遠(yuǎn)是絕對(duì)的不受構(gòu)建目錄影響也不會(huì)有相對(duì)路徑解析的歧義。我強(qiáng)烈建議在所有INCLUDEPATH和LIBS里都用$$PWD做前綴這是最穩(wěn)妥的做法。3.2 LIBS的配置細(xì)節(jié)與鏈接順序陷阱LIBS變量控制鏈接器的庫搜索路徑和要鏈接的庫。典型寫法LIBS -L$$PWD/thirdparty/json/lib -ljsoncpp LIBS -L$$PWD/thirdparty/spdlog/lib -lspdlog-L指定庫文件所在目錄-l指定庫名不帶前綴和后綴。比如-ljsoncpp會(huì)讓鏈接器去找libjsoncpp.soLinux、libjsoncpp.a靜態(tài)庫、jsoncpp.libWindows或libjsoncpp.dylibmacOS。鏈接順序是這里最大的陷阱。GNU鏈接器Linux下處理庫的順序是從左到右如果庫A依賴庫B那么-lA必須出現(xiàn)在-lB前面。寫反了就會(huì)報(bào)undefined reference。這個(gè)規(guī)則在Windows的MSVC鏈接器下不那么嚴(yán)格但在Linux和macOS下必須遵守。# 正確依賴方在前被依賴方在后 LIBS -lmyapp -lmybase # 錯(cuò)誤被依賴方在前可能導(dǎo)致undefined reference LIBS -lmybase -lmyapp如果庫之間有循環(huán)依賴可以用--start-group和--end-group包裹LIBS -Wl,--start-group -lA -lB -lC -Wl,--end-group但循環(huán)依賴本身通常是設(shè)計(jì)問題能避免就避免。另一個(gè)細(xì)節(jié)是Windows下Debug和Release庫的區(qū)分。MSVC編譯的庫通常帶d后綴表示Debug版本比如mylibd.lib和mylib.lib。在.pro里可以用條件判斷CONFIG(debug, debug|release) { LIBS -L$$PWD/lib/debug -lmylibd } else { LIBS -L$$PWD/lib/release -lmylib }這個(gè)寫法在跨平臺(tái)項(xiàng)目里很實(shí)用但要注意MinGW編譯器不一定遵循d后綴約定需要根據(jù)實(shí)際庫文件名調(diào)整。3.3 運(yùn)行時(shí)庫路徑的三種處理方式編譯鏈接都過了程序一運(yùn)行報(bào)“找不到動(dòng)態(tài)庫”這是運(yùn)行時(shí)路徑問題。qmake本身不直接處理運(yùn)行時(shí)路徑但你可以通過幾種方式解決。方式一把動(dòng)態(tài)庫復(fù)制到可執(zhí)行文件旁邊。這是最簡(jiǎn)單粗暴的方法在Windows下特別有效因?yàn)閃indows默認(rèn)會(huì)在可執(zhí)行文件所在目錄搜索.dll。在.pro里可以加自定義構(gòu)建步驟自動(dòng)復(fù)制win32 { QMAKE_POST_LINK $$quote(cmd /c copy /y $$shell_path($$PWD/thirdparty/json/lib/jsoncpp.dll) $$shell_path($$OUT_PWD/release/)) }方式二設(shè)置rpathLinux和macOS。rpath是寫在可執(zhí)行文件里的運(yùn)行時(shí)庫搜索路徑。qmake可以通過QMAKE_RPATHDIR設(shè)置unix:!macx { QMAKE_RPATHDIR $$PWD/thirdparty/json/lib } macx { QMAKE_RPATHDIR executable_path/../Frameworks }Linux下還可以用$ORIGIN表示可執(zhí)行文件所在目錄QMAKE_RPATHDIR $ORIGIN/lib這樣程序會(huì)去可執(zhí)行文件旁邊的lib目錄找動(dòng)態(tài)庫部署時(shí)把庫放在對(duì)應(yīng)位置就行。方式三設(shè)置環(huán)境變量。Linux下用LD_LIBRARY_PATHmacOS下用DYLD_LIBRARY_PATHWindows下用PATH。這種方式適合開發(fā)調(diào)試階段不適合最終部署因?yàn)橐笥脩羰謩?dòng)配置環(huán)境變量。# Linux下臨時(shí)設(shè)置 export LD_LIBRARY_PATH/path/to/libs:$LD_LIBRARY_PATH ./myapp我個(gè)人的習(xí)慣是開發(fā)階段用方式三快速驗(yàn)證確認(rèn)庫沒問題后改用方式二rpath做正式配置Windows下用方式一。這樣既方便調(diào)試又保證部署時(shí)不需要額外配置。4. CMake下的路徑配置實(shí)操4.1 target_include_directories的作用域與最佳實(shí)踐CMake里配置頭文件路徑用target_include_directories比qmake的INCLUDEPATH多了一個(gè)作用域概念target_include_directories(myapp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/include ) target_include_directories(myapp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/api ) target_include_directories(myapp INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/interface )PRIVATE表示這些路徑只用于編譯當(dāng)前target不傳遞給依賴它的其他target。PUBLIC表示既用于當(dāng)前target也傳遞給依賴它的target。INTERFACE表示不用于當(dāng)前target只傳遞給依賴它的target。這個(gè)機(jī)制在大型項(xiàng)目里非常有用。比如你寫了一個(gè)庫mylib它的公開頭文件在include/目錄私有頭文件在src/目錄。那么target_include_directories(mylib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src )這樣依賴mylib的其他target會(huì)自動(dòng)獲得include/的搜索路徑但不會(huì)獲得src/的路徑。封裝性很好。但這里有個(gè)常見誤區(qū)很多人把所有路徑都寫成PUBLIC導(dǎo)致路徑污染。比如你把第三方庫的路徑寫成PUBLIC所有依賴你的target都會(huì)去搜索那個(gè)第三方庫的路徑可能引發(fā)頭文件沖突。我的原則是只把確實(shí)需要暴露給外部的路徑設(shè)為PUBLIC其余一律PRIVATE。4.2 target_link_libraries的依賴傳遞與寫法CMake里鏈接庫用target_link_librariestarget_link_libraries(myapp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/json/lib/libjsoncpp.a ) target_link_libraries(myapp PRIVATE jsoncpp spdlog )可以直接寫庫文件的完整路徑也可以寫庫名讓CMake去搜索。寫庫名時(shí)需要用link_directories指定搜索路徑link_directories(${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/json/lib) target_link_libraries(myapp PRIVATE jsoncpp)但link_directories的作用范圍是當(dāng)前目錄及子目錄而且不推薦在現(xiàn)代CMake中使用。更好的做法是用find_package或add_subdirectory引入第三方庫讓CMake自動(dòng)處理路徑。如果第三方庫沒有提供CMake支持可以手動(dòng)創(chuàng)建IMPORTEDtargetadd_library(jsoncpp STATIC IMPORTED) set_target_properties(jsoncpp PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/json/lib/libjsoncpp.a INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/json/include ) target_link_libraries(myapp PRIVATE jsoncpp)這樣就把庫文件和頭文件路徑綁定在一起了用起來更干凈。4.3 運(yùn)行時(shí)路徑的CMake處理方案CMake設(shè)置rpath用INSTALL_RPATH和BUILD_RPATHset_target_properties(myapp PROPERTIES BUILD_RPATH ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/json/lib INSTALL_RPATH $ORIGIN/lib )BUILD_RPATH用于構(gòu)建階段的運(yùn)行INSTALL_RPATH用于安裝后的運(yùn)行。$ORIGIN在Linux下表示可執(zhí)行文件所在目錄macOS下用executable_path。Windows下CMake可以配置構(gòu)建后事件復(fù)制DLLadd_custom_command(TARGET myapp POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/json/lib/jsoncpp.dll $TARGET_FILE_DIR:myapp )這個(gè)寫法比qmake的QMAKE_POST_LINK更清晰而且跨平臺(tái)兼容性更好。5. 路徑問題排查實(shí)戰(zhàn)5.1 編譯期報(bào)錯(cuò)頭文件找不到的排查流程看到fatal error: xxx.h: No such file or directory按以下步驟排查第一步確認(rèn)頭文件是否真的存在于你配置的路徑下。有時(shí)候是文件根本沒下載全或者路徑拼寫錯(cuò)了。我遇到過把include寫成includes的情況找了半天才發(fā)現(xiàn)。第二步確認(rèn)INCLUDEPATH或target_include_directories是否真的生效了。qmake下可以運(yùn)行qmake -d查看詳細(xì)輸出CMake下可以用cmake --build . --verbose查看實(shí)際編譯命令。編譯命令里會(huì)包含-I參數(shù)看看你配置的路徑在不在里面。第三步檢查路徑分隔符和大小寫。Windows下路徑不區(qū)分大小寫Linux下區(qū)分。如果你在Windows下開發(fā)代碼里寫#include MyHeader.h但實(shí)際文件名是myheader.hWindows下能編譯Linux下就報(bào)錯(cuò)。第四步檢查是否有多個(gè)同名頭文件沖突。用編譯命令里的-I參數(shù)順序結(jié)合gcc -E -v查看頭文件搜索路徑的完整列表。5.2 鏈接期報(bào)錯(cuò)undefined reference的排查思路undefined reference to xxx說明鏈接器找到了庫文件但庫里沒有這個(gè)符號(hào)??赡艿脑驇煳募姹静粚?duì)比如鏈接了Release版但需要Debug版的符號(hào)庫文件架構(gòu)不對(duì)比如在64位項(xiàng)目里鏈接了32位庫鏈接順序問題依賴方寫在了被依賴方后面C符號(hào)修飾name mangling問題比如C庫沒有用extern C包裹排查方法用nm命令查看庫文件里的符號(hào)nm -C libmylib.a | grep xxx如果符號(hào)存在但鏈接還是報(bào)錯(cuò)大概率是鏈接順序問題。如果符號(hào)不存在說明庫文件不對(duì)。5.3 運(yùn)行期報(bào)錯(cuò)動(dòng)態(tài)庫加載失敗的排查方法Linux下用ldd查看可執(zhí)行文件的動(dòng)態(tài)庫依賴ldd ./myapp輸出里如果有not found說明對(duì)應(yīng)的庫找不到。然后用readelf -d ./myapp | grep RPATH查看rpath配置。macOS下用otool -L ./myapp查看依賴otool -l ./myapp | grep -A2 LC_RPATH查看rpath。Windows下用dumpbin /dependents myapp.exe查看依賴的DLL。這些工具能幫你快速定位是哪個(gè)庫找不到以及當(dāng)前的搜索路徑是什么。5.4 常見問題速查表報(bào)錯(cuò)信息發(fā)生階段可能原因解決方法fatal error: xxx.h: No such file or directory編譯期INCLUDEPATH未配置或路徑錯(cuò)誤檢查INCLUDEPATH用$$PWD做前綴cannot find -lxxx鏈接期LIBS的-L路徑錯(cuò)誤或庫文件不存在檢查-L路徑和庫文件名undefined reference to xxx鏈接期鏈接順序錯(cuò)誤或庫版本不匹配調(diào)整鏈接順序檢查庫版本error while loading shared libraries運(yùn)行期動(dòng)態(tài)庫搜索路徑未配置設(shè)置rpath或LD_LIBRARY_PATHdyld: Library not loaded運(yùn)行期macOS rpath未配置設(shè)置QMAKE_RPATHDIR或INSTALL_RPATH程序啟動(dòng)閃退無報(bào)錯(cuò)運(yùn)行期Windows下DLL缺失用dumpbin檢查依賴復(fù)制DLL到exe目錄6. 幾個(gè)讓我印象深刻的踩坑經(jīng)歷6.1 影子構(gòu)建導(dǎo)致的相對(duì)路徑失效有一次我接手一個(gè)項(xiàng)目.pro文件里寫的是INCLUDEPATH ./include。在源碼目錄下直接構(gòu)建沒問題但換成影子構(gòu)建在單獨(dú)的build目錄里執(zhí)行qmake就報(bào)頭文件找不到。原因是qmake解析./include時(shí)基準(zhǔn)是.pro文件所在目錄但某些qmake版本在影子構(gòu)建時(shí)會(huì)把基準(zhǔn)解析成構(gòu)建目錄。后來我把所有相對(duì)路徑都改成$$PWD/include問題徹底解決。這個(gè)經(jīng)歷讓我養(yǎng)成了一個(gè)習(xí)慣永遠(yuǎn)不在構(gòu)建配置里寫裸的相對(duì)路徑一律用$$PWD或${CMAKE_CURRENT_SOURCE_DIR}做前綴。多打幾個(gè)字符省下的是幾小時(shí)的排查時(shí)間。6.2 鏈接順序引發(fā)的“靈異事件”一個(gè)項(xiàng)目在Windows下編譯鏈接都正常到了Linux下就報(bào)undefined reference。查了半天發(fā)現(xiàn)是鏈接順序問題Windows的MSVC鏈接器對(duì)庫順序不敏感Linux的GNU鏈接器嚴(yán)格按順序解析。把LIBS里的庫順序調(diào)整了一下就好了。這件事教會(huì)我跨平臺(tái)項(xiàng)目要以最嚴(yán)格的平臺(tái)為準(zhǔn)來寫配置。Linux的鏈接器最嚴(yán)格按它的規(guī)則寫Windows和macOS基本都不會(huì)出問題。6.3 macOS的rpath配置踩坑記macOS的rpath機(jī)制跟Linux不一樣它用rpath、executable_path、loader_path這幾個(gè)特殊變量。我第一次在macOS上配動(dòng)態(tài)庫路徑時(shí)按Linux的經(jīng)驗(yàn)設(shè)了QMAKE_RPATHDIR結(jié)果編譯鏈接都過運(yùn)行時(shí)報(bào)dyld: Library not loaded。后來查資料才知道m(xù)acOS需要在鏈接時(shí)加-rpath參數(shù)而且路徑要用executable_path開頭。正確的配置是macx { QMAKE_LFLAGS -Wl,-rpath,executable_path/../Frameworks QMAKE_RPATHDIR executable_path/../Frameworks }這樣可執(zhí)行文件會(huì)去上級(jí)目錄的Frameworks文件夾找動(dòng)態(tài)庫。部署時(shí)把庫放在那個(gè)位置就行。7. 一些實(shí)用的配置建議7.1 項(xiàng)目目錄結(jié)構(gòu)規(guī)范一個(gè)清晰的目錄結(jié)構(gòu)能避免很多路徑問題。我常用的結(jié)構(gòu)是project/ ├── src/ # 源碼 ├── include/ # 公開頭文件 ├── thirdparty/ # 第三方庫 │ ├── json/ │ │ ├── include/ │ │ └── lib/ │ └── spdlog/ │ ├── include/ │ └── lib/ ├── build/ # 構(gòu)建目錄影子構(gòu)建 └── myapp.pro第三方庫統(tǒng)一放在thirdparty下每個(gè)庫有獨(dú)立的include和lib子目錄。這樣INCLUDEPATH和LIBS的配置就很規(guī)整INCLUDEPATH $$PWD/include INCLUDEPATH $$PWD/thirdparty/json/include INCLUDEPATH $$PWD/thirdparty/spdlog/include LIBS -L$$PWD/thirdparty/json/lib -ljsoncpp LIBS -L$$PWD/thirdparty/spdlog/lib -lspdlog7.2 環(huán)境變量與構(gòu)建配置的分離不要把機(jī)器相關(guān)的路徑硬編碼在.pro或CMakeLists.txt里。比如/home/username/libs這種路徑換臺(tái)機(jī)器就失效了??梢杂铆h(huán)境變量JSONCPP_DIR $$(JSONCPP_DIR) isEmpty(JSONCPP_DIR) { JSONCPP_DIR $$PWD/thirdparty/json } INCLUDEPATH $$JSONCPP_DIR/include LIBS -L$$JSONCPP_DIR/lib -ljsoncpp這樣默認(rèn)用項(xiàng)目?jī)?nèi)的第三方庫需要時(shí)可以通過環(huán)境變量覆蓋。CI/CD環(huán)境下特別有用。7.3 用qmake的system()做路徑檢查qmake支持在配置階段執(zhí)行shell命令可以用來做路徑存在性檢查!exists($$PWD/thirdparty/json/include/json/json.h) { error(jsoncpp headers not found. Please run setup script.) }這樣如果第三方庫沒準(zhǔn)備好qmake階段就會(huì)報(bào)錯(cuò)而不是等到編譯時(shí)才報(bào)頭文件找不到。錯(cuò)誤信息也更明確。路徑配置這件事說到底就是“知道每個(gè)路徑在哪個(gè)階段起作用然后用最穩(wěn)妥的方式寫”。我見過太多人在這上面反復(fù)踩坑其實(shí)只要把編譯期、鏈接期、運(yùn)行期這三個(gè)階段分清楚再記住$$PWD和${CMAKE_CURRENT_SOURCE_DIR}這兩個(gè)“萬能前綴”大部分問題都能避免。剩下那些跨平臺(tái)的差異遇到一次記一次慢慢就形成條件反射了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产又大又粗又长视频| 国产后入清纯| 精品无吗久久| 一级人妻性爱视频| 亚洲精品中文字幕一区在线视频 | 97超碰国产亚洲精品资源| 蜜桃精品视频一区二区三区| AV 少妇 人妻 偷拍| 亚洲一区中文字幕| 男人天堂站| 一级一性爱免费视频| 亚洲 图片 综合91| 丁香五月综合| 国产操逼网站亚洲一级黄色| 国产av色网| 日本3级一区二区免费| 亚洲熟女一区二区| 自拍二页| 久久久久国产亚洲一区欧美色图日韩| 伊人黄色片| 天天综合网合集91| 青青操在线亚洲视频观看欧美在线| 在线无码操| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 草久在线| 98超碰日本| 97婷婷色| 五月天婷婷成人网| 国产无马视频| 欧美日韩狠狠爱| 操九九九九九九| 一级岛国大片| 无码人妻一区二区三区色欲aⅴ| 久久宗合亚洲| 日韩电影免费网站麻豆视频| 9 9无尺码天堂网| 神马久久久久久久久久久久| 免费看国产大AB| 亚洲天堂,男人| 色综合网1| 欧美亚洲一级在线观看| 久久中文字幕在线观看| 欧美91丝袜| 性爱久久| AV在线资源| 中文字幕黑人大片| 色综合一区二区三巨| 国语av最新自产拍在线观看| 人妻精品一区二区在线| 国产男人又猛又粗又爽| 6080YYY午夜理论片在线观看| 成人午夜高潮av猛片| 欧日韩一二三f区| 婷婷五月天无码| 97操97色| 亚洲精品1区| 日本一区99| 五月丁香综合啪啪| 日韩偷拍色图| 天堂伊人久久| 亚洲天天影视色综合| 国产一区二区久久| 综合熟妇一区二区三区| 男人天堂2030| 天天久久| AV九九| 欧美一区二区亚洲天堂| 欧美性色综合网| 猛交交| 日韩欧美字幕亚洲一区二区 | 十八禁视频一区二区| 操日韩第| 亚洲AV噜噜狠狠网址蜜桃动漫| 亚洲欧美不卡线| 亚洲小说视频| 青青草中文字幕| 天天谢天天干| 国产精品一二三区福利| 亚洲青色欧美| 蜜臀Av一区二区三区| 性色AV网站| 亚洲无码偷拍| 超碰日本97美女人妻人人玩人人爱| 欧美激情 日韩精品| 亚洲Av噜噜一区二区三区妖精| 啊啊啊啊啊舒服| 美女骚尻视频| 麻豆国产97在线| 日韩人妻免费精品| 久久鲁夜| 天天影视亚洲| 日日操免费视频| 黄片www.| 1204av韩国| 亚洲精品97中文字幕| 91美女精品| 隔壁邻居波多野结衣中文字幕| 91人妻PORNY九色大屁股| 天天天天干| 999在线电影香蕉| 色偷综合| 天天色天天干天天爱| www.久久| 91网站18+| 影音先锋新男人| 麻豆亚洲Av成人无码一区精品| 北条麻妃99精品青青久久| 欧美高潮| 精品人体无圣光凹凸| 97在线精品| 激情四射五月天| 日韩偷拍一区二区三区| 91九九九馒头| 日本影视久久免费| 天天干一区二区| 久草免费在线视频| 无码9区| 中文字幕激情小说| 国产自产91区13区| 无码精品久久久久久亚洲| 久久伊人大香蕉| 91亚洲丝袜熟女| 少妇厨房愉情理伦片bd在线观看| 中文字幕在在线观看网站| 伊人麻豆传媒| 超碰97欧美在线| 青青青在线高清视频在线一二三四区 | 欧美日韩香蕉| 91丝袜| 99精品在线观看| 亚洲中文字幕一区二区| 能看的AV| 日韩国产欧美伦理在线| 精品网站9999| 澳门黄片一香蕉视频| 欧洲中文字幕| 色黄色美女大长腿午夜视频| 啊啊啊 在线| 免费中文在线| 99re99在线视频| 丁香六月激情综合| 精品欧美老熟女一二区| 熟女欧美日韩综合婷婷| 国产大学生高潮在线播放| 日本天堂在线播放| 人妻啊啊人妻啊啊| 国产美女口爆吞精视频| 亚洲综合性网址| 亚洲精品无码久久AV| 4tube欧美女厕所| 99热这里只有精| 黄片免费日韩| 亚洲情色 无码专区| 超碰三级秋霞| 亚洲第一黄色av网站| 亚洲极品| 啊啊啊好湿久久| 无码聚合| 亚洲男人的天堂va亚洲男人社| 熟女丰满人妻一区| 五月色综合| 性爱视频免费网址| 免费观看成人www精品视频| 亚洲综合情色| n1038 一二三区| 99日精品欧美国产| 噜噜噜噜天天狠狠| 啊啊啊好舒服好爽啊啊啊视频| 免费无码婬片AAAA片直播色戒| 伊人aaa| 99少妇精品视频| av日韩国产一区二区| 嗯嗯啊啊啊好爽| 久久久久久久久久精| 国产成人+综合亚洲+天堂| 日本阿v天堂在线观看| 免费看污网站| 日本有码影片下载 | 青青草国产盗摄一二三区| 人人摸人人叼| 激情抓乳插进去啪啪啪日韩| 久久精品国产亚洲妲己影视| 久久有码视频| 操老熟女AV| 91亚洲影院综合| 免费A V在线| 26uuu国产成人综合| 激情色图| 蜜桃狠狠色伊人亚洲综合| 日韩精品 资源| 再深点灬舒服灬太大了添视频| 老熟女91视频| 性色综合网| 大香蕉性欧美| 高清孕妇孕交 交孕妇| 国产AV人人 夜夜人人澡| 欧美一区91大爱| 色优久久| www.五月天| 亚洲福利中文字幕在线| 欧美性爱三区二区| 日韩欧美成人性爱在线| 东北丰满熟女国产一区| 黄色大片免费在线| 天堂成人网| 78精品| 九九热只有精品| 欧美 亚洲 综合 制服 另类| 中国小夫妻勾搭露脸淫荡对白| 蜜桃传媒一区二区亚洲| 97色干| 国产中文精品一区二区在线观看| 亚洲精品人妻在线| 久久久久亚洲AV无码专区少妇| 自拍偷拍 日韩欧美| 久久久草草精品| 91 国产丝袜在线播放-百度| 天天操熟妇| 韩国国产欧美情侣视频在线| 天天综合网~91入口| 97精品视频免费| 97露脸精品丝袜| 裸体1区| 欧美 亚洲 另类 综合| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 成人精品久久久午夜福利| 日本一级特级毛片视频| 少妇3P性爱自拍| 日韩性爱再线视频| 校园春色 男人天堂 | 精品亚洲天堂| 男人女人18禁片免费看网站| 国产精品爱欲| 亚洲精品人妻吞精av| 中文字幕一区二区三区视频播放| 亚洲色天堂日韩中| 日韩中文字幕宗合在线| 色色97爱| 国产精品露脸在线观看| 五月婷婷无码| 国产亚洲欧洲在线观看| 99热线麻豆| 白丝AV| 最新国产亚洲精品精品国产亚洲综合| 91chinese在线| 香蕉一区二区三区在线视频| 中文一区在线日| 校园激情狠狠四射| 囯戸精品高潮呻吟旡码| 人妻人人操| 亚洲乱色视频一区、二区在线| 欧美日韩婷婷中文| 久久精品无码专区| 国产精品爽爽v| 亚洲五月丁香花狠狠干一区二区三区| 夜夜青青无码影院| 美国人人操人人操| 色婷婷在线视频精品导航| 久艹99| 欧美精品成人一区二区在线观看 | 欧美精品久久96人妻无码| 亚洲综合色在线| 亚洲成a人v欧美综合天堂下载| 丰满人妻无码一区二区三区| 欧美综合自拍成人自拍第二十页| 日韩欧美偷拍美女视频| 欧美色宗合| 1769精品一区二区三区| 亚州久久9| 天堂成人网| 日韩成人大片在线观看| 亚洲蜜臀视频精品久久| 国产不良强奸视频免费看| 一起草av| 亚洲玖玖爱| 黄色片,com| 色999人与兽| 亚洲熟女综合网| 国产一区二区三区影片| 免费国产| 美国aaaaa一级黄片| 无码视频一区二区| 国产精品一区二区手机看片| 春色校园综合网| 日韩三级伦理中文字幕| 97舔舔| 国产精品久久久久久久久久久久久久吹| 亚洲国产一区二区入口| 超碰在线97国产| 国产一区二区成人av在线播放| 人妻久久久久久久久久久久久久久| 欧美亚洲清纯| 人妻av在线| 亚洲a色| 日本网色| 欧美美女视频| 老熟女熟妇| 久久在线观看免费视频| 久久嫩草国产成人一区| 一本色道无码DVD中文字幕| 另类图片五月| 18禁看网站一区| 99999精品成人| 乱伦熟女论坛| 夜夜人妻爽| 国产精品一区二区校花| 狠狠色五月亚洲91| 最新AVzaixian| 精品无码久久久久久久杏吧| 蜜奶av| 7777奇米影视久久| 亚洲女人毛茸茸91| 色色色999| 啊啊啊啊好爽好舒服一区二区易域| 午夜丁香婷婷| 欧美成人免费在线观看| 啊啊啊快操我视频| 黄色一级视| 亚洲欧美清纯| 丰满少妇一区二区三区四区观看| 熟妇xxxxx性春色| 天天色怡春院| 99久久综合| 国产偷人伦激情在线观看| 精品亚州18| 精品国产一级久久| 亚洲国产精品V?在线播放| 少妇极品熟妇人妻无码| 黄色av一区二区在线| 97免费视频在线| 嗯嗯啊啊亚欧精品| 色婷视频| 少妇一区二区三区高速| 天天色综合影视网| 亚洲精品蜜桃久久久久久久| av九九| 亚洲熟女乱色一区二区三区| 婷婷色中文字幕| 日本 情色 1区2区3区| 欧美精品另类人妖xxxx| Blackedraw视频一区二区| 少妇大屁屁| 亚洲欧洲色情高清| 天天日夜夜爽| 国产中文字幕曰本毛片| 级做a爱无码性色永久免费| 欧美在线综合| 久久9久9久99久9久9| 久久人人舔人人爽舔人人av片| 超碰色97| 好湿好紧视频| 91热| 精久久久| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久久m| 91啪啪视频| 国产一级内射无挡观看| 69av一区二区三区| 一本色道综合久久欧美日韩精品| 亚洲九九爱| 99 国产丝袜在线| 丝袜综合| 精品久久在线区一区| 亚洲天堂 视频你懂的| 天天干干天天干干| 91国产操逼视频| 天美传媒婬乱在| 欧美日韩不卡传媒| 97久久超碰国产精品| 亚洲熟女一区| 亚州色图欧美| 亚洲日韩青青草色月| 超碰97爽| 青青草日逼视频| 狂操嫩妻视频一区二区三区| 丁香色五月 97干| 国产成人免费观看在线视频| 黄片免费看的| 欧美东京热精品A∨| 日韩欧美成人性爱在线| 少妇3P性爱自拍| 在线观看成人性爱免费小视频| 亚洲 小说 欧美 激情 另类| 亚洲网站一区二区在线| 天天日天天干天天操| 天美传媒婬乱| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 亚洲人妻色图| 精品久久97观看在线视频| 大逼色网站| 午夜噜噜噜| 偷偷人人精品女女久久| 男女一进一出视频久久| 日韩免费福利在线观看| 国产av激情无码久久天堂| 国内毛片国产欧美拍| 黄色人人| 91天天看| 无码av永久免费专区网站| 欧美偷拍区| 久久久国产av美女私房| 少妇3P性爱自拍| 午夜理论片在线观看免费| 爆操无码| 欧州色图区| 啊啊啊啊视频免费| 色在线69堂| 深喉吞精| 美日韩男女操屄视频| 人人操人人搞人人草| 日韩一级成人毛片免费观看| AA丁香综合激情| 亚州操操穴网| 天天操美美| 一本色道久久综合精品婷婷| 一级乱伦网站| 日本女优在线视频福利| 五月天激情小说| 国产夜夜操| 天美传媒av一区二区| 色原狠狠天天天| 日本乱人伦片中文三区| 操逼日韩无码| 日本一区99| 国产又大又粗又长视频| 午夜a成v人电影| 日本 欧美 国产一区| 久久久不能久久久久| 91n免费处女| 亚洲精品电影| 在线免费观看日韩一区| 亚洲中文字幕97久久精品少妇| 久久久久久中文版| 国产色图乱伦| 超碰97中文| 国产精品探花在线| 人人操天天爽| 亚州综合色| 91丨熟女丨丰满熟女| 国产最新AV| 亚洲美腿丝袜香蕉影视欧美成人| 免费视频在线一区二区不卡| 激情综合网激情五月天| 欧美中字不卡| 国产一区免费午夜视频| 天美AV片| 97资源亚洲| 91c色| 一区二区三区 丝袜 高跟 美腿| 亚洲国产亚洲天堂| 亚洲无码成人精品| 肥臀熟女福利视频一区二区| 韩日欧亚a级| 日韩国产欧美伦理在线| 国产传媒1234区| 午夜在线播放| 69精品少妇一区二区三区蜜桃| 18禁久极品美女久久哦哟呀!| 天天网综合| 九九激情网| 国产精品3| 久久久久久国产无码精品| 亚洲网自拍| 欧美日韩97| 五月婷婷激情网| 亚洲天堂电影网99999| 国产女人极品高潮毛片| 国产欧美后入| 婷婷视频在线免费观看| 九七毛片九九毛片| 国产又操| 亚州精品人妻一二三区| 精品黑人一区二区| 日本熟妇自慰性高潮一区二区三区| 日本成人A片网站| 国产一区麻豆免费观看| 无码 黑人一区二区三区| 日韩av三四区| 日本日逼高清| 好爽免费视频,| 日韩国产乱子伦App| 日韩天天本| www.91理论| 97爱啪| 亚洲精品尤物yw在线影院| 亚洲欧美变态| 色综合99| 欧美AAAA黄片| 日韩无码AB| 伊人久操| 亚洲天天更新| 亚洲 欧美 另类 综合 偷拍| 中文字幕人成乱码熟女香港| wuyechaopeng| 看日韩美女二区三区免费操逼视频| 99热在线播放| 国产精品女生av| 97碰碰日本乱偷人妻中文的| 亚洲AV噜噜狠狠网址蜜桃动漫| 九九九九免费视频| 天天插天天射| 狠狠色噜噜狠狠狠狠2018| 欧美国产有色电影| 91色婷婷综合久久中文字幕二区| 欧美日韩资源| 欧美乱妇狂野欧美在线视频| 国产超碰人人操| 97天堂| 91nbbbbbb| 99热18| 狠狠操官网| 91日韩网站| 色综合 加勒比| 大香蕉520| 日本欧美韩国国产在线| 99re视频在线播放青草| 伊人一区二区三区| 蜜臀少妇一区二区| 日本不卡高清视频| 97综合久久| 视频黄站| 色爱欲亚洲| 91精品黄在线观看| 黄色视频60分钟| 98久久超碰| 精品一区二区三区四区外站| 偷拍欧美综合| 欧美 亚洲 偷拍自拍| 亚洲中字幕日本一区二区三区| 亚洲资源网| 香蕉99秘 精品一区丁香| 成年人性爱日韩| AV麻豆免费一区| 欧美se综合| 大香蕉伊人亚洲| 97亚洲资源| 曰韩av中文字幕专区| 国产粉嫩蜜臀av一区二区三区| 久久久久久少妇| 久久久久久久久久久免费精品 | 亚洲欧美另类图片| 中文字幕一区二区三区蜜桃视频| 久久av色| 亚洲97P| 欧美激情综合| 欧美极度丰满熟妇hd| 国产精品成人无码a v毛片| 97超碰香蕉| 亚洲一区中文字幕| 肉丝中文无码高清| 国产诱惑| 极品一区二区三区免费| 天天操人人操骚逼网站| 一区二区三区四区久久视1| 日韩草久视频| 夜夜中出国产| 色女女女导航| 久操九九九九| 91影库| 午夜爽爽爽| 国产白丝网站| 色色九区| 国产福利合集| 色色毛片| 国产高清午夜成人在线观看| 熟女乱3伦999| 粉嫩av久久一区二区三区| 超碰97人妻免费在线| 久操91视频| 午夜国产综合视频在线观看 | 日本欧美韩国国产在线| 高潮的A片激情扒开一区| 蜜臀AV秘一区翔田千里| 宅男影院久久久,99| 北约熟女超碰| 手机看片1024你懂的国产| 日本精品一区二区中文字幕| 中文字幕精品资源在线| 偷拍综合亚洲| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | www亚洲免费| 一级毛片久久久久久久女人18| 欧美亚洲色图另类国产| 亚洲成a人在线观看久| 日本精品高清一二区一本到| 欧美午夜一区二区三区| 国产成人网| AV色天香在线| 精品无码人妻一区二区免费蜜桃| 人妻色情天天操| 少妇淫妇久久久久久久| 精品国产Av无码久久久伦古装| 欧美精品久久久久久久丰满| 亚洲欧美日韩精品久| 狠狠色丁香| 国产无遮挡| 日本熟妇精品九九| 亚洲图片欧美| 国产h片在线观看视频| 亚洲成?V人片在线观看福利| 97视频在线免费看| 91亚洲狠狠色| 午夜性刺激视频免费观看| 欧美十八禁导航成人| 95人妻爽爽人人做人人澡| 综合 青草 伊久久 影院 综合| 欧美高潮| yaouchengrenav| 五月天色色网站| 久久AV无码1区2区3区| 日本精品一区二区三| 人人性爱视频免费| 婷婷久久五月| av久日| 视频国产欧美在线播放| 欧美中出1| 欧美在线l亚洲| 国产一级内射高清视频| 手机看片1025| 99www.bibizy香蕉资源国产一区二区三区高清 | 超碰九7免费| 一级黄色性爱A级片| 久久五月份| 国产中文字幕在线观看| 九九精品99| 尻女朋友一夜| 99超碰碰| 久久精品色欧美aⅴ一区二区| 夜夜狠狠躁日日躁色视频| 国色综合天| 人人爽人人精品乱人伦AV| 日韩啪啪视频| 亚洲久热| 久久久久女教师免费一区 | 久久AV无码网址| 亚洲视频一二区| 日本操逼aaaaa| 亚洲91极品| 加勒比aⅴ| 无套内射性感少妇视频| 一区二区亚州激情久婷婷欧美| 日韩成人性日韩成人性爱视频在线免费观看 | www.色操逼| 夜夜免费视频| 思思热影视| 一二三四视频在线社区中文字幕| 高潮的A片激情扒开一区| 射丝袜高跟鞋99| 激情小说亚洲| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 啊啊啊啊啊啊啊国| 美女91AV| 国产超碰国产97| 久久精品| 熟妇熟女一区二三区| 欧美精品三区| 夜夜嗨AV蜜臀av| 欧美传媒| 97精品国产手机| 久草国产在线视频| 欧美性五月| 国产一区二区三区影片| 天天综合青苹果| 久久天天摸| 欧美性爱精品七区| 中文字幕十五区| 久久直播国产| 日本幼女18+| 中出91| a片在线播放| 国产成人91一区二区三区| 美女人妻色网站| 国产精品亚洲色婷婷久久久| 午夜福利在线视频1000| 亚欧性爱ab| 天天欧美97| 6080yy午夜理论三级一区二区三区无码 | 夜夜躁狠狠躁日日躁av| 国产专区路线| 美女操逼福利视频| 日韩有码专区| 97一区二区三区视频| 欧美在线观看综合国产| 好属操| 一区二区三区色综合| 337p大胆噜噜噜噜噜91Av| 天天综合~91| 亚洲成人AB| 99性爱在线观看| 91女日逼| 久久人爽| 激情综合五月天| 老熟女乱伦一区| 日本 情色 1区2区3区| 情侣开房子拍 日韩无码 女的很漂亮| 欧美呦呦性爱| 久久久极品| 夜夜嗨av午夜成人| 色色色色网站| 91视频伊人| 99re视频在线播放青草| 91天天c| 五月婷婷六月丁香| 性色av蜜臀av色欲aV| 91欧美网| 九九九九一级| 色狠狠综合噜一二三区| 丁香五月激情婷婷| 国产亚洲女v在线观看| 国产精品视屏| 超碰在线日韩一区| 成人片视频| 久久这里精品国产99丫e6| 欧美精品久久久久久久久88| 国产午夜福利电影免费在线观看| 激情婷婷丁香网| 性爱AV天堂| 无码欧美有限公司| 高清无码网址| 九九综合久久| 久久亚洲精品成人av| 不卡中文字幕aⅴ在线| 亚洲精品少妇| 亚洲一区二区av| 亚洲精品久久久久久| 自拍内地三级在线观看| 久久内射| 91性网| 97在线播放| 久久是精品| 欧洲亚洲人人爽爽视频| 96免费视频在线| 久久嫩草国产成人一区| 97久精品| 四虎永久在线精品免费网址| 国产精品一二三免费网站| 4399成人黄A片| 岛园激情| 偷看洗澡一二三区美女| 免费强奸av| 91成人在线免费视频| 无码WWW免费视频网站| 色在线亚洲视频www| 都市久久精品激情亚洲| 中文人妻av高清一区| 岛国片在线播放| 久久久久久久久久久免费精品| 欧美性爱第一页久久| 欧美高清无码免费视频高清版| 男人的天堂2018| 久久的免费性爱视频| 神马久久久久| 国产三级在线现体验区| 人人操人人摸人人看人人插| 亚洲精品尤物yw在线影院| 国产多人在线观看视频| 日操粉逼逼| 色官网在线| www.婷婷| 青青草在线视频欧美| 欧美91在线+|+欧美| 久久6热精品99视频| 爱丝福利| 男人天堂资源| 亚洲欧美国产va在线播放频| 亚欧性爱无码| 欧美亚洲中文字幕| 91狠| 国产白丝在线| 死我十八禁| 97综合在线| 国产又黄又爽又刺激久久久久久| 国产一区二区三区导航| 99热只有| 久久綜合很很很| 国产97综合| 成年人黄色| 老司机天天操| 色五月大香蕉| 99在线观看无大码| 亚欧操逼片在线观看 | 澳门特级毛片免费观看| 日本欧美韩国日产片片在线看免| 91成人在线| 国产丁香精品露脸视频| 中文字幕久久婷婷丁香五月天| 在线岛| 激情小说五月天| 亚洲综合小视频小说在线观看 | 欧亚成人| 亚洲最大91网| 综合天天。| 夜夜草我| www.婷婷六月天| 日韩人妻精品中文字幕| 久操国产在线| 日本丝袜人妻内射| 啊啊啊啊啊啊啊国| 人妻少妇无码| 亚洲密乳AV| 女人爽到高潮久久久| 亚洲鸥美色图| 欧美大香蕉久| 精品一区二区三区蜜桃臀赵总 | 久久久久久久人妻| 激情啪啪视频| 一个国产在线综合网站| Julia在线播放亚洲久久| 日韩综合97P| 国产无马在线| 精品女人999| 黄页网站成人免费| 亚洲AV秘 精品久久老牛影视| 熟女丝袜视频| 青青草大香蕉视频| 日韩av影片在线观看| 天天天天做夜夜夜夜做| 国产极品粉嫩馒头一线天av| 黄色AV影视| 成人三级片一区二区三区视频| 插穴性爱视频在线观看| 亚洲精品欧洲精品| 视频国产欧美在线播放| 天天爱天天韩国日本牛牛牛牛| 狠狠干妹子| 色嗨嗨在线| 天堂伊人久久| 精品人妻一区二区视频| 综合激情97| 欧美真人抽搐一进一出gif| 亚州色交| 亚洲色天| 久久久精久久久| 啪啪视频免费在线观看| 麻豆亚洲Av成人无码一区精品| 天天综合青苹果| 欧美激情综合| 亚洲色宗合| 日本91白丝| 国产久久久久久| 国模一区二区三区| 成人怡红院| 人妻天天夜夜爽一区二区| 亚州性色| 亚洲一二三精品久久网| 四虎精品永久在线播放| 精品网站9999| 久久久久亚洲熟妇熟女| 欧美亚洲第1页| 亚洲欧美另类少妇精品| 五月激情视频| 性色乱AV一区二区| 日本一片一区| 久96热在线观看视频| 日本高清免费一本视频在线观看| 大香蕉伊人一区在线观看| 国产精品嫩草影院免费| 高清无码学生妹高潮| 麻豆60秒| 久久av成人无码免费| 五月天亚洲色图| 精品一区二区2| 婷婷五月影院| 日本亚洲vr欧美不卡高清专区| 欧美97爱| 天天日天天干天天摸天天操| 清清草影| 91N五十路| 亚洲图片欧美91N| 91久久伊人婷婷青青草| 国产和美国毛片| 亚欧韩av| 91这里只有精品| 10000部十八禁看电影| 嫩草影院在线观看精品| 婷婷性网| 一区二区三区四区姦女| 午夜影美女日鸡鸡天天视频国产| 国产后入式在线观看| 中日无幕一二三四区| 波多野42部无码喷潮在线观看| 伊人在线大香蕉视频久久| 亚洲五月丁香花狠狠干一区二区三区| a片久久久久久久久久久久| 性欧美精| 97色伦欧美| 久久毛卡| 天天做天天爱| 我爱搞逼综合网| 97色伦欧美| 国产福利小视频高清在线观看| 天天夜夜rb| 天天干天天日天天射黄色片| 精品超碰国产| 6080YYY午夜理论片在线观看| 亚洲第一页综合在线| 一区麻豆 高清中文字幕| 国产中文大片资源中文字幕| 黑白配性爱AV成| av操操不卡| 717影院理论午夜伦八戒| 精品久久久久久AV无码| 72av视频| 激情情色五月天| 五月天久久婷婷亚洲| 一区二区 韩日AV| 大香网站| 日韩中文字幕视频| 啊啊啊无码| 色综九九九一区| 亚洲男人天堂2016| 97舔舔| 天天躁日日躁AAAXX| 日本免费一级AAA大片器| 超碰成人人人爽人人爽| 大香蕉视频啪啪啪啪| 日产成人久久| 国产午夜视频| 亚洲色图 欧美热图 清纯唯美 另类自拍| 成人性爱电影一区二区| 日本操大逼| 国产精品久久天天干| 麻豆天美91| 日韩97P| 少妇天堂| 97操b| 青青草原伊人网| 一区二区无码视频| 无码九九九九| 97欧美色| 桑老女人九区| 国产后入式在线观看| 国产乱不卡| 五十路熟女在线不卡观看一区二区| 超碰这里只有精品| 欧美亚州综合图片| 91性感网站| 嗯嗯啊啊好大好爽| 极品色电影院| 亚洲drav色图| 老色鬼成人精品视频下载大在线观看| 98福利在线视频| 亚洲影视高清第一页| 人妻喷水| 特污精品女优骚货黄色视频在线免费观看| 99999亚洲另类| 九久久九九久视频| 日韩av在线播放不卡| 3d成人精品一区二区| 啪啪啪东京| 影视综合无码少妇| 国产亚洲精品农村妇女| 国产区91柔拿会所技师| 欧美色性爱| 亚洲乱码国产乱码精网站| 日韩欧美亚洲一区二区三区影院| 国产精品视频精品一二| 成人黑料社久久| 婷婷五月天色| 国产精品久久发布| 日夜干射色啊| 久草精品一区 | 91爱做| 青青草日韩免费观看高清在线| 熟妇一区,二区,三区。| 国产精品丝袜在线| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 高潮毛片无遮挡高清免费| 3P乱轮视频| 色色五月丁香| 亚洲中文字幕乱码无码一区二区 | 国产 日韩,欧美 自拍| 99久国产精品午夜性色福利| 中文字幕精品日韩中文字幕| 97最新在线播放视频| 丰满人妻一区二区三区在线| juliaann丝袜大战黑鬼| 福利五区| 国产91影院| 久久高清欧美国产| 日韩偷拍色图| 久久一区二区加油站| 成人国产二区三区在线,男女精品。| 国产中出内射一区二区| 国产av美女被艹的乱叫| Av色五月| 91男同| 在线亚洲欧美| 黑人嘿嘿嘿超爽免费视频| 超碰三级秋霞| 欧美综合 站| 国产精品高潮久久久无码| 亚洲啪啪视频一区二区| 欧美性猛交美女自慰91| 少妇内射视频| 欧美成人性爱视频在线播放| 99热这里只有精品地址| 日韩久久超碰色| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 伊人网在线观看| 亚洲区小说| 欧美日产国产在线成人第一区| 久久男女激情视频网站| 另类av天堂| 国产久久久久久| 久草视频分类在线| 成人精品一区二区三区| 91丝袜在线观看| 欧美色婷婷| 91 国产丝袜在线播放-百度| 国产精品久久久久无码Av网曝门| 亚洲九九夜夜| 性高潮久久久| 多毛小伙内射老太婆| 色婷婷综合久久中文字幕雪峰 | 插入综合网| 乱人乱色一区二区三区免费| www.99中文字幕| 综合激情97| 东京热一区二区中文字幕| 99色在线视频| 人妻喷水| 日韩,欧美,中文在线| 欧美91网站| 免费自拍三级综合| 国产AV天美| 极品销魂美女一区二区| 天美传媒国产原创中文字幕亚洲欧美另类 | 精品久久久久久中文字幕视频免费| 91free福利| 加勒比久久av| 91动漫操逼视频| 99日免费视频中文字幕| 亚洲一级特黄大片在线播放91| 久久久性爱视频| se吧提供91精品国产91久久久久久 | 91jk色拍| 久久亚洲国产成人| 大香蕉十区| 天天看精品动漫视频一区| 有码免费观看| 囯产精品久久久久久久久久梁医生| 麻豆天美国美国产| a'v在线资源| 男人天堂站| 秋霞免费无码视频日韩A片| 久久久久久久久久久久黄色 | 91黑丝在线播放| 亚洲精品九九九| 久久精品亚洲婷婷| 成人小说另类在线| 91网18| 老司机射| 91N综合网| 91N欧美| 日韩免费在线观看不卡| 亚洲大色堂| 视频国产精品未满十八禁止在线观看| 大香蕉色欲AV| 色五月激情网| 欧美成人免费在线观看| 中日韩久久人妻一区二区| 日韩精品一区二区日韩| 久久久天美| 亚洲成人av色网| 自拍偷拍草一草| 色偷偷人人玩人人舔人人操人人摸人人爽| 亚洲强奸乱伦影视网| 好涩综合| 九月AV| 国产99久久99热这里只有精品15| 青青草中出视频| 混色激情av| www.99中文字幕| 欧洲色综合| 少妇毛片久久| 日本性爱网址| 友优传媒精品在线一区二区| 大香蕉综合| 免费看欧美美女黄色大片| 91人妻人人澡人人爽人人精品| 亚洲中文字幕妇伦久久| 999亚洲国产视频| 久久久青青草| 亚洲综合有玛| 亚洲欧洲日韩国产自在线| 9丨久久九九九| 日韩9999| 淮穴色AV| 欧美日韩在线国产在线| 婷婷五月天激情四射| 日韩欧美资源| 天天色香欲综合网| 国产黄色 A 片免费看| 九九九九精| 夜夜骑操视频| 嗯嗯啊啊操死我| 人妻精品一区二区在线| 夜草网站| 中文字幕青青草| 做爱福利视频一区二区| 亚洲人妻一区二区三区| AV无码久久久精品| 久久在线观看免费视频| 欧美综合色图片| 久久久久密臀视频| 超碰调教97| 久久五月天婷婷| 日韩欧美tv一区二区在线观看| 99re这里只有精品9| 人人九九精| 国产成人主播| 欧美性战999| 六月婷婷综合| 婷婷中文网| 亚洲精品一二区| a片在线播放| 伊人91| 欧美 色 亚洲| 天天干夜夜操一区二区| 色女综合| 色区97| 超碰在线1234区| 精品亚洲俞拍视频一区| 婷婷五月天补不补| 不卡啪啪视频| 欧美性爱www免费版| 内射小黄片| 天天激清| 好吊色综合| 亚洲黄色电影| 天天综合网~91| 国产精品高朝久久久久久久| 亚洲激情天堂网| 无码视频一区二区| 欧美狠狠操| 天天综和| 97爱欧美| 国产农村妇女精品1区二区| 97色插| 亚洲熟妇图片| 99.色网| 精品免费一区二区三区在线亚洲人成| 亚洲色图大香| 九九色色| 97超碰碰碰| 男女打扑克高清网站| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 欧美日韩国产色五月综合在线| 一区二区三区无卡视频在线观看| 亚洲一二三精品久久网| 亚洲天堂另类小说男人| 美女大乳久久久久久久女人18| 亚洲宗合电影| 殴洲老熟女| 97超碰中文| 抽插一区二区视频| 熟妇人妻精品一区二区| 亚洲熟女综合网| av网站在线看|