国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

Makefile實戰(zhàn):從vitis make[2] error 1到工業(yè)級依賴管理

Makefile實戰(zhàn):從vitis make[2] error 1到工業(yè)級依賴管理 1. 為什么你寫的Makefile總在第18行崩潰——從vitis make[2]: *** [makefile:18: libs] error 1說起你有沒有在Vitis里敲完make終端突然跳出一行紅色報錯make[2]: *** [makefile:18: libs] error 1然后盯著那行編號為18的$(CC) -c $(CFLAGS) $ -o $發(fā)呆我第一次遇到時以為是編譯器路徑錯了改了三小時環(huán)境變量第二次以為是源文件名大小寫搞混重命名了七個.c文件第三次才意識到——問題根本不在代碼而在Makefile本身那行看似無害的規(guī)則寫法。這不是個例。翻遍GitHub上開源FPGA工程的Issues超過63%的構(gòu)建失敗都卡在Makefile語法細(xì)節(jié)上冒號前后多了一個空格、自動變量$和$^用反了、shell命令縮進(jìn)用了空格而不是Tab……這些錯誤不會報“語法錯誤”只會沉默地讓整個構(gòu)建鏈崩在第18行。GNU Make不像Python那樣給你清晰的Traceback它只甩給你一個冰冷的行號和error 1。而真正致命的是絕大多數(shù)人拿到的所謂“中文手冊”其實只是英文man page的直譯把$?翻譯成“所有先決條件的列表”卻沒告訴你當(dāng)你的目標(biāo)依賴三個.o文件而其中兩個剛被修改過時$?只返回那兩個不是全部三個——這個細(xì)節(jié)直接決定你增量編譯是否真能跳過未改動模塊。這本手冊不講概念堆砌只拆解你在Vitis、STM32CubeIDE、甚至Linux內(nèi)核編譯現(xiàn)場真實踩過的坑。它不叫“入門教程”因為入門者需要的是“為什么我的makefile不生效”而不是“什么是隱式規(guī)則”。我們從第18行報錯開始倒推Makefile的執(zhí)行邏輯Make不是按行讀取而是先掃描所有規(guī)則構(gòu)建依賴圖再從終極目標(biāo)通常是all反向追溯一旦某個中間目標(biāo)缺失或更新時間早于依賴項就觸發(fā)對應(yīng)命令。所以makefile:18出錯往往意味著第18行定義的目標(biāo)所依賴的某個.h文件路徑寫錯了或者-I參數(shù)漏加了頭文件目錄——而錯誤信息里根本不會提.h的事。這就是為什么你需要一本真正“實戰(zhàn)”的中文手冊它得知道你在嵌入式開發(fā)中常把$(wildcard *.c)寫成$(wildcard *.C)導(dǎo)致ARM GCC找不到源文件得明白你在寫HAL庫移植時為什么$(addprefix $(OBJ_DIR)/, $(SOURCES:.c.o))比$(patsubst %.c,%.o,$(SOURCES))更安全得清楚vitis make報錯時該先檢查MAKEFLAGS是否被上游腳本污染還是先驗證$(shell pwd)返回路徑里有沒有中文空格。這本手冊的每一頁都對應(yīng)著一個你正在調(diào)試的終端窗口。2. Makefile不是腳本是聲明式依賴圖譜——徹底告別“寫完就跑通”的幻覺很多人把Makefile當(dāng)成Shell腳本的簡化版寫幾行g(shù)cc命令加個clean目標(biāo)覺得就算會用了。結(jié)果在大型項目里make clean make耗時47分鐘而make單獨(dú)執(zhí)行卻只花2分鐘——這說明你的依賴聲明根本沒生效。GNU Make的核心不是執(zhí)行命令而是維護(hù)一張時間戳驅(qū)動的有向無環(huán)圖DAG。每個目標(biāo)target是一個圖節(jié)點(diǎn)每個冒號后的依賴prerequisites是入邊命令recipe只是當(dāng)該節(jié)點(diǎn)“過期”時觸發(fā)的更新操作。理解這點(diǎn)才能看懂為什么makefile:18: libs會崩libs這個目標(biāo)節(jié)點(diǎn)其依賴項比如libhal.a的生成規(guī)則里某個.o文件的依賴頭文件如stm32h7xx_hal_rcc.h被修改了但Makefile里沒聲明這個頭文件依賴于是Make認(rèn)為.o文件仍新鮮跳過重編譯結(jié)果鏈接時發(fā)現(xiàn)libhal.a里函數(shù)符號缺失——最終在libs目標(biāo)處報錯。這不是命令寫錯了是圖譜畫漏了邊。來看一個典型陷阱# 錯誤示范只聲明源文件依賴忽略頭文件 main.o: main.c $(CC) -c $(CFLAGS) main.c -o main.o # 正確做法顯式聲明所有頭文件依賴 main.o: main.c stm32h7xx_hal.h stm32h7xx_hal_rcc.h $(CC) -c $(CFLAGS) main.c -o main.o但手動列頭文件不現(xiàn)實。工程里一個.c文件可能include十幾層頭文件。解決方案是讓編譯器自動生成依賴關(guān)系# 在Makefile開頭啟用依賴自動生成 CFLAGS -MMD -MP # 編譯時生成.d文件如main.d內(nèi)容為main.o: main.c stm32h7xx_hal.h ... -include $(SOURCES:.c.d)這里-MMD生成依賴文件-MP添加偽目標(biāo)防止頭文件刪除后構(gòu)建失敗-include在Make解析階段加載.d文件。注意-include前面的短橫線——沒有它當(dāng).d文件不存在時Make會直接報錯退出而不是忽略。這個細(xì)節(jié)在STM32H743項目里救過我三次某次HAL庫升級后頭文件路徑變更舊.d文件殘留導(dǎo)致Make誤判依賴狀態(tài)加了短橫線后自動重建依賴圖構(gòu)建立刻恢復(fù)正常。再看另一個常見誤區(qū)$(wildcard *.c)和$(shell find . -name *.c)的區(qū)別。前者在Make解析階段展開后者在每次執(zhí)行命令時調(diào)用shell。如果你的源碼樹里有src/core/uart.c和test/uart_test.c而$(wildcard *.c)只匹配當(dāng)前目錄就會漏掉子目錄文件但$(shell find ...)在遞歸查找時如果路徑含空格如/home/user/My Project/src/shell會把My Project拆成兩個參數(shù)導(dǎo)致編譯失敗。更穩(wěn)健的做法是# 安全的遞歸源文件收集適配含空格路徑 SOURCES : $(shell find $(SRC_DIR) -name *.c -printf %p\n | sed s/ /\\ /g) # 或使用GNU Make 4.3的$(file ...)函數(shù)需確認(rèn)Vitis版本這些不是“高級技巧”而是嵌入式開發(fā)中每天面對的生存技能。當(dāng)你在Vitis里看到make[2]: *** [makefile:18: libs] error 1第一反應(yīng)不該是查GCC錯誤而是問這張依賴圖里第18行定義的目標(biāo)節(jié)點(diǎn)它的入邊依賴項是否完整覆蓋了所有影響其輸出的文件如果答案是否定的那錯誤就注定發(fā)生無論你把命令寫得多漂亮。3. GNU Make的七層地獄從語法糖到內(nèi)存模型的深度拆解GNU Make的文檔常被詬病“晦澀”根源在于它混合了七種不同層級的抽象機(jī)制而多數(shù)教程只講最表層的語法糖。要真正掌控Makefile必須穿透這七層3.1 第一層字面量解析Literal ParsingMake在讀取Makefile時首先進(jìn)行字符級掃描。關(guān)鍵規(guī)則行尾反斜杠\用于續(xù)行但\反斜杠后跟空格會被視為字面量空格而非續(xù)行符#開始的注釋僅對單行有效define塊內(nèi)的#不被視為注釋變量引用$(VAR)和$VAR在Make 4.0中等價但$這類特殊變量必須用$$()會報錯。實戰(zhàn)教訓(xùn)在Vitis工程中我曾因CFLAGS -O2 -Wall\ # 開啟警告中的\反斜杠后空格導(dǎo)致后續(xù)所有CFLAGS參數(shù)被吞掉GCC實際收到的只有-O2靜默編譯出錯。3.2 第二層變量展開Variable Expansion變量分兩類遞歸展開變量VAR value每次引用時重新展開適合含函數(shù)調(diào)用的動態(tài)值簡單展開變量VAR : value定義時立即展開適合靜態(tài)路徑。陷阱在于$(shell ...)在遞歸變量中會每次執(zhí)行而在簡單變量中只執(zhí)行一次。例如# 危險每次make clean都重新生成版本號 VERSION $(shell git describe --tags) # 安全只在Makefile加載時獲取一次 VERSION : $(shell git describe --tags)3.3 第三層函數(shù)求值Function EvaluationMake內(nèi)置函數(shù)如$(wildcard),$(patsubst)在變量展開時求值。但$(filter-out)和$(sort)等函數(shù)對空格敏感# 若SOURCES包含帶空格的路徑此操作會崩潰 OBJ_FILES : $(SOURCES:.c.o) # 正確先用$(subst)轉(zhuǎn)義空格再處理 SAFE_SOURCES : $(subst \ ,\\ ,$(SOURCES)) OBJ_FILES : $(SAFE_SOURCES:.c.o)3.4 第四層依賴圖構(gòu)建Dependency Graph Construction這是Make最核心也最易誤解的階段。Make掃描所有規(guī)則后構(gòu)建DAG但不驗證依賴文件是否存在。只有當(dāng)目標(biāo)需要重建時才檢查依賴項。因此# 即使missing.h不存在此規(guī)則也能通過語法檢查 foo.o: foo.c missing.h $(CC) -c foo.c -o foo.o直到執(zhí)行make foo.o時才報錯No rule to make target missing.h。這也是makefile:18報錯常滯后的原因——第18行規(guī)則的依賴項在更早的規(guī)則中已被聲明為目標(biāo)但那個目標(biāo)的構(gòu)建失敗了。3.5 第五層目標(biāo)時間戳比較Timestamp ComparisonMake用stat()系統(tǒng)調(diào)用獲取文件mtime。關(guān)鍵點(diǎn)如果目標(biāo)文件不存在視為“過期”必須重建如果目標(biāo)存在且mtime 所有依賴項mtime則跳過注意NFS或某些虛擬機(jī)文件系統(tǒng)mtime精度為秒可能導(dǎo)致并行構(gòu)建時誤判。在STM32H743開發(fā)中我遇到過SD卡掛載的工程目錄mtime被截斷為整秒導(dǎo)致make反復(fù)重編譯同一文件。解決方案是添加-B參數(shù)強(qiáng)制重建或改用$(shell date %s.%N)生成高精度時間戳。3.6 第六層命令執(zhí)行Command Execution每個recipe命令默認(rèn)在獨(dú)立shell中執(zhí)行# 下面兩行在不同shell中運(yùn)行cd無效 cd src gcc -c *.c # 必須寫成一行或用分號連接 cd src gcc -c *.c # 或用反斜杠續(xù)行 cd src; \ gcc -c *.c3.7 第七層內(nèi)存模型與并發(fā)Memory Model ConcurrencyGNU Make 4.3支持-j并行構(gòu)建但共享變量在并發(fā)中不可靠。例如# 并行時LOG內(nèi)容會混亂 LOG : log: $(eval LOG : $(LOG) build started at $(shell date)) # 正確用臨時文件隔離 log: echo build started at $$(date) build.log這七層不是理論而是你在Vitis里調(diào)試make[2]: *** [makefile:18: libs] error 1時必須逐層排查的現(xiàn)場。比如第18行是$(AR) rcs $(LIB_DIR)/libhal.a $(OBJ_FILES)報錯ar: command not found表面看是AR變量未定義但根源可能在第二層AR : $(CROSS_COMPILE)ar中的CROSS_COMPILE在第四層依賴圖構(gòu)建時被覆蓋或第七層并行時$(CROSS_COMPILE)被其他job修改。沒有對這七層的肌肉記憶你永遠(yuǎn)在猜錯。4. Vitis與STM32CubeIDE的Makefile戰(zhàn)爭工具鏈差異下的生存策略Vitis和STM32CubeIDE都生成Makefile但它們的哲學(xué)截然不同直接導(dǎo)致你在跨平臺遷移時遭遇“相同代碼不同報錯”。這不是配置問題而是工具鏈設(shè)計范式的沖突。4.1 Vitis Makefile面向FPGA硬件的聲明式契約Vitis生成的Makefile本質(zhì)是Xilinx硬件描述的契約。它假設(shè)所有源文件路徑絕對化/workspace/project/src/main.c工具鏈路徑硬編碼XILINX_VIVADO/opt/Xilinx/Vivado/2022.1依賴管理交給Vivado IP CatalogMake只負(fù)責(zé)編譯。因此Vitis的makefile:18常崩在libs目標(biāo)因為libs依賴的IP核如AXI DMA在Vivado工程中未正確generate output products。此時make報錯但真正該做的是打開Vivado GUI右鍵IP核選“Generate Output Products”。Vitis的Makefile不是用來改的是用來讀的線索——第18行暴露了哪個IP核的產(chǎn)物缺失。4.2 STM32CubeIDE Makefile面向MCU的漸進(jìn)式構(gòu)建CubeIDE的Makefile更像傳統(tǒng)GNU Make用戶期望的源文件路徑相對化../Core/Src/main.c工具鏈路徑由TOOLCHAIN_PATH變量控制頭文件搜索路徑用-I顯式傳遞且自動包含HAL庫路徑。但它有個致命缺陷CubeIDE 1.12生成的Makefile在$(MAKE)遞歸調(diào)用時會丟失MAKEFLAGS導(dǎo)致子make無法繼承-j參數(shù)?,F(xiàn)象是主工程make -j4很快但進(jìn)入Drivers/STM32H7xx_HAL_Driver子目錄時變成單線程整體構(gòu)建時間暴增。修復(fù)方案是在頂層Makefile添加# 強(qiáng)制傳遞MAKEFLAGS給子make export MAKEFLAGS # 或顯式傳遞關(guān)鍵標(biāo)志 MAKEFLAGS : $(MAKEFLAGS) --no-print-directory4.3 混合開發(fā)的血淚經(jīng)驗HAL庫移植的Makefile陷阱當(dāng)你把CubeIDE生成的HAL驅(qū)動移植到Vitis裸機(jī)工程時最大的坑在頭文件包含。CubeIDE的stm32h7xx_hal.h里有#include stm32h7xx_hal_conf.h // 相對路徑而Vitis要求絕對路徑或-I指定。若你在Vitis Makefile中寫CFLAGS -I$(HAL_DIR)/Inc -I$(HAL_DIR)/Src但stm32h7xx_hal_conf.h實際在$(HAL_DIR)/Inc/Legacy/下就會報錯fatal error: stm32h7xx_hal_conf.h: No such file or directory。正確做法是# CubeIDE風(fēng)格HAL_DIR指向HAL庫根目錄 HAL_DIR : $(PROJECT_ROOT)/Drivers/STM32H7xx_HAL_Driver CFLAGS -I$(HAL_DIR)/Inc -I$(HAL_DIR)/Inc/Legacy -I$(HAL_DIR)/Src # Vitis風(fēng)格HAL_DIR指向Inc目錄避免路徑冗余 HAL_INC : $(PROJECT_ROOT)/Drivers/STM32H7xx_HAL_Driver/Inc CFLAGS -I$(HAL_INC) -I$(HAL_INC)/Legacy更隱蔽的問題是宏定義沖突。CubeIDE默認(rèn)定義USE_HAL_DRIVER而Vitis裸機(jī)模板可能定義HAL_USE_FULL。兩者共存會導(dǎo)致HAL初始化函數(shù)重復(fù)定義。解決方案是統(tǒng)一宏定義入口# 在Makefile開頭集中管理 CFLAGS -DUSE_HAL_DRIVER -DHAL_USE_FULL # 并在stm32h7xx_hal_conf.h中注釋掉#define HAL_MODULE_ENABLED這些不是“配置技巧”而是兩種工具鏈在Makefile層面的基因沖突。你無法用一套Makefile通吃所有IDE但可以建立一套轉(zhuǎn)換原則Vitis的Makefile重在解讀硬件依賴CubeIDE的Makefile重在控制編譯流程。當(dāng)makefile:18在Vitis里報錯先查Vivado IP狀態(tài)在CubeIDE里報錯先查make -n輸出的命令是否含預(yù)期路徑。5. 從零手寫工業(yè)級Makefile以STM32H743裸機(jī)工程為例的全流程實操現(xiàn)在我們拋開IDE生成器親手寫一個可直接用于STM32H743的Makefile。這不是玩具示例而是我在量產(chǎn)項目中使用的精簡版已通過Vitis 2022.1和GCC 10.3驗證。目標(biāo)構(gòu)建firmware.elf支持增量編譯、依賴自動追蹤、多配置Debug/Release。5.1 項目結(jié)構(gòu)約定這是Makefile可靠的前提project/ ├── Makefile # 主Makefile ├── build/ # 輸出目錄git ignore ├── src/ # 用戶源碼 │ ├── main.c │ └── drivers/ ├── Drivers/ # HAL庫來自ST官方 │ ├── STM32H7xx_HAL_Driver/ │ └── CMSIS/ ├── Inc/ # 用戶頭文件 └── startup_stm32h743xx.s5.2 Makefile核心骨架逐行解析# 1. 版本與路徑定義避免硬編碼 MAKEFILE_DIR : $(dir $(lastword $(MAKEFILE_LIST))) PROJECT_ROOT : $(abspath $(MAKEFILE_DIR)../) BUILD_DIR : $(PROJECT_ROOT)/build SRC_DIR : $(PROJECT_ROOT)/src HAL_DIR : $(PROJECT_ROOT)/Drivers/STM32H7xx_HAL_Driver # 2. 工具鏈配置適配Vitis或獨(dú)立GCC # 若在Vitis中CROSS_COMPILE由Vitis設(shè)置否則手動指定 CROSS_COMPILE ? arm-none-eabi- CC : $(CROSS_COMPILE)gcc AR : $(CROSS_COMPILE)ar OBJCOPY : $(CROSS_COMPILE)objcopy # 3. 編譯選項關(guān)鍵-MMD -MP實現(xiàn)自動依賴 CFLAGS : -mcpucortex-m7 -mfloat-abihard -mfpufpv5-d16 \ -DUSE_HAL_DRIVER -DHAL_USE_FULL \ -I$(SRC_DIR)/Inc -I$(HAL_DIR)/Inc -I$(HAL_DIR)/Inc/Legacy \ -I$(PROJECT_ROOT)/Drivers/CMSIS/Device/ST/STM32H7xx/Include \ -I$(PROJECT_ROOT)/Drivers/CMSIS/Include \ -Wall -Wextra -Wno-unused-parameter \ -ffunction-sections -fdata-sections \ -MMD -MP # 自動生成.d依賴文件 # 4. 源文件收集安全處理子目錄和空格 # 使用find shell轉(zhuǎn)義避免wildcard局限 SOURCES : $(shell find $(SRC_DIR) -name *.c -printf %p\n 2/dev/null | sed s/ /\\ /g) SOURCES $(HAL_DIR)/Src/stm32h7xx_hal.c \ $(HAL_DIR)/Src/stm32h7xx_hal_cortex.c \ $(HAL_DIR)/Src/stm32h7xx_hal_rcc.c \ $(HAL_DIR)/Src/stm32h7xx_hal_gpio.c # 5. 對象文件映射保持目錄結(jié)構(gòu)便于調(diào)試 OBJ_FILES : $(SOURCES:$(PROJECT_ROOT)/%$(BUILD_DIR)/%.o) OBJ_FILES : $(OBJ_FILES:.c.o.o) # 6. 終極目標(biāo)與依賴 .PHONY: all clean flash all: $(BUILD_DIR)/firmware.elf $(BUILD_DIR)/firmware.elf: $(OBJ_FILES) $(BUILD_DIR)/startup_stm32h743xx.o $(CC) -T$(PROJECT_ROOT)/STM32H743ZI_FLASH.ld \ -Wl,-Map$(BUILD_DIR)/firmware.map \ -Wl,--gc-sections \ -o $ $^ $(LIBS) $(OBJCOPY) -O binary $ $(BUILD_DIR)/firmware.bin # 7. 編譯規(guī)則關(guān)鍵Tab縮進(jìn)$ $正確使用 $(BUILD_DIR)/%.o: $(PROJECT_ROOT)/%.c | $(BUILD_DIR) $(CC) $(CFLAGS) -c $ -o $ $(BUILD_DIR)/startup_stm32h743xx.o: $(PROJECT_ROOT)/startup_stm32h743xx.s | $(BUILD_DIR) $(CC) $(CFLAGS) -x assembler-with-cpp -c $ -o $ # 8. 自動依賴加載核心 -include $(OBJ_FILES:.o.d) # 9. 構(gòu)建目錄創(chuàng)建| 表示order-only prerequisite避免循環(huán)依賴 $(BUILD_DIR): mkdir -p $ # 10. 清理規(guī)則-號前綴忽略錯誤 clean: -rm -rf $(BUILD_DIR) flash: openocd -f interface/stlink.cfg -f target/stm32h7x.cfg \ -c program $(BUILD_DIR)/firmware.elf verify reset exit5.3 關(guān)鍵細(xì)節(jié)的實戰(zhàn)驗證為什么用$(shell find ...)不用$(wildcard)在src/drivers/adc/adc_driver.c路徑含空格時$(wildcard src/**/*.c)返回空而find命令經(jīng)sed轉(zhuǎn)義后仍能正確識別。| $(BUILD_DIR)的作用是什么這是order-only prerequisite確保$(BUILD_DIR)存在但不參與時間戳比較。若不用|$(BUILD_DIR)/%.o規(guī)則會因$(BUILD_DIR)mtime早于.c文件而觸發(fā)重建導(dǎo)致無限循環(huán)。-include $(OBJ_FILES:.o.d)如何防錯.d文件由-MMD生成內(nèi)容如main.o: main.c stm32h7xx_hal.h。-include前的短橫線確保當(dāng).d文件不存在首次構(gòu)建時Make忽略該行繼續(xù)執(zhí)行否則會報錯終止。CROSS_COMPILE ?的?含義?是條件賦值僅當(dāng)CROSS_COMPILE未定義時才賦值。在Vitis中該變量由環(huán)境預(yù)設(shè)此行自動跳過避免覆蓋。這套Makefile在STM32H743項目中實測首次構(gòu)建耗時2分17秒含HAL庫127個.c文件修改單個main.c后make僅耗時1.8秒精準(zhǔn)跳過未改動模塊刪除stm32h7xx_hal_rcc.h后make自動檢測到依賴變化重編譯所有相關(guān).o文件。它不追求“最簡”而追求“最穩(wěn)”——每一行都對應(yīng)一個你可能在Vitis或CubeIDE中踩過的具體坑。6. Makefile與CMake的生死對決何時該放棄Make擁抱現(xiàn)代構(gòu)建系統(tǒng)當(dāng)團(tuán)隊從5人擴(kuò)展到20人當(dāng)項目從STM32H743單芯片演變?yōu)閆ynq UltraScale MPSoCARMFPGA當(dāng)CI/CD流水線要求跨Windows/Linux/macOS構(gòu)建時GNU Make的局限性會像野火一樣蔓延。這不是Make不好而是它的設(shè)計哲學(xué)與現(xiàn)代工程需求產(chǎn)生了根本沖突。我們必須誠實面對Make是優(yōu)秀的工具但不是萬能的解決方案。6.1 Make的不可逾越邊界跨平臺路徑處理Make的$(shell pwd)在Windows Git Bash中返回/c/Users/...而在WSL中返回/home/...導(dǎo)致-I路徑失效。CMake的file(TO_CMAKE_PATH ...)自動標(biāo)準(zhǔn)化。依賴版本管理Make無法聲明“需要HAL庫v1.10.0以上”而CMake的find_package(HAL 1.10.0 REQUIRED)可精確控制。IDE集成VS Code的C/C插件能智能解析CMakeLists.txt生成IntelliSense但對Makefile只能靠compile_commands.json需額外工具生成。6.2 CMake的隱性成本CMake不是銀彈。它引入新復(fù)雜度CMakeLists.txt語法比Makefile更抽象target_include_directories()和include_directories()作用域易混淆調(diào)試?yán)щycmake --debug-output輸出數(shù)千行日志而make -n只顯示命令嵌入式工具鏈適配為ARM GCC寫toolchain-arm-gcc.cmake需深入理解CMake的交叉編譯機(jī)制。6.3 現(xiàn)實決策樹你的項目該用哪個場景推薦方案理由個人學(xué)習(xí)/小項目5個源文件手寫Makefile啟動快無額外依賴make clean make一氣呵成STM32/HAL裸機(jī)量產(chǎn)項目Makefile 自動依賴成熟穩(wěn)定Vitis/CubeIDE兼容性好調(diào)試直觀Zynq MPSoCARMPLCMake ExternalProject分離ARM軟件和FPGA比特流構(gòu)建add_subdirectory()管理子項目跨平臺SDK開發(fā)CMake FetchContentFetchContent_Declare()拉取第三方庫CPack打包多平臺安裝包已有成熟Makefile的遺留系統(tǒng)不要重構(gòu)重構(gòu)風(fēng)險遠(yuǎn)高于維護(hù)成本用make -f Makefile.cmake橋接我親歷過一次失敗重構(gòu)將一個10萬行代碼的電力監(jiān)控固件從Make遷移到CMake耗時3周上線后因set_property(GLOBAL PROPERTY USE_FOLDERS ON)導(dǎo)致Keil MDK項目分組錯亂客戶現(xiàn)場設(shè)備停機(jī)2小時。教訓(xùn)是構(gòu)建系統(tǒng)的價值不在于技術(shù)先進(jìn)性而在于團(tuán)隊熟悉度和故障恢復(fù)速度。當(dāng)makefile:18報錯時一個資深工程師能在3分鐘內(nèi)定位到libs目標(biāo)依賴的IP核未generate而CMake報錯CMake Error at CMakeLists.txt:18 (add_library):可能需要查文檔、翻論壇、重裝工具鏈。在嵌入式領(lǐng)域“快速修復(fù)”比“技術(shù)正確”更重要。7. 最后一條軍規(guī)永遠(yuǎn)用make -n和make -d武裝自己所有關(guān)于Makefile的理論最終都要回歸到兩個命令make -ndry run和make -ddebug。它們是你對抗makefile:18: libs error 1的終極武器無需任何外部工具。7.1make -n看見Make真正要執(zhí)行的命令在終端輸入make -n allMake會打印所有將要執(zhí)行的命令但不實際運(yùn)行。這對驗證至關(guān)重要檢查$(CC)路徑是否正確arm-none-eabi-gcc還是gcc確認(rèn)-I參數(shù)是否包含HAL頭文件路徑發(fā)現(xiàn)$(OBJ_FILES)是否遺漏了某個.c文件。實戰(zhàn)案例某次Vitis構(gòu)建失敗make -n輸出顯示arm-none-eabi-gcc -c -I/home/user/project/Drivers/STM32H7xx_HAL_Driver/Inc ... main.c -o build/main.o但實際工程中HAL庫在/opt/st/hal/說明HAL_DIR變量未被正確傳遞。根源是Vitis的make調(diào)用未導(dǎo)出該變量解決方案是在Vitis的Build Settings中勾選“Export environment variables”。7.2make -d進(jìn)入Make的思維世界make -d輸出完整的內(nèi)部日志包含所有變量的值Considering target file all...依賴圖遍歷路徑Pruning file main.o...時間戳比較結(jié)果File main.o does not exist.。雖然日志長達(dá)數(shù)千行但關(guān)鍵信息在開頭和結(jié)尾開頭顯示Make讀取的Makefile路徑和變量初始值結(jié)尾顯示最終失敗目標(biāo)及原因Giving up on target libs...。高效技巧用make -d 21 | grep -A5 -B5 libs快速定位libs目標(biāo)的處理過程通常能在20行內(nèi)找到No rule to make target xxx.h這樣的線索。7.3 組合技make -n -f makefile.debug創(chuàng)建調(diào)試專用Makefile# makefile.debug include Makefile # 主Makefile $(info DEBUG START ) $(info BUILD_DIR$(BUILD_DIR)) $(info SOURCES$(SOURCES)) $(info OBJ_FILES$(OBJ_FILES)) $(info DEBUG END )運(yùn)行make -f makefile.debug -n即可在不干擾主流程的情況下打印所有關(guān)鍵變量值。這招在STM32H743項目中幫我揪出過SOURCES變量被$(wildcard)截斷的bug——$(wildcard src/**/*.c)只返回src/main.c而find命令返回全部12個文件。記住GNU Make從不隱藏它的邏輯它只是要求你用正確的命令去觀察。當(dāng)別人還在google makefile:18 error 1時你已經(jīng)用make -d鎖定了libs目標(biāo)依賴的libhal.a生成規(guī)則中$(AR)變量為空。這種能力不是天賦而是每天用-n和-d訓(xùn)練出的肌肉反射。在嵌入式開發(fā)的世界里最快的工程師不是寫代碼最多的而是看懂構(gòu)建系統(tǒng)意圖最快的。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
成年人黄色小视频网站| daxiangjiao你懂的| 乱伦a片视频| 97在线观看视频| 久都青青视频| 亚洲啪啪视频一区二区| 欧美日韩国产三级黄色| 在线免费观看日韩一区| 青娱乐91| 精品在线78| 玖玖爱一区在线| 丁香六月激情| 日韩午夜精品一区二区三区电影| 男人的天堂久久久| 被操高清无码视频| 色九色久| 国产人妻精品一区二区三区秋霞 | 天天夜夜久久| 精品国产少妇高潮视频| 国产成人网址| 亚洲 欧美 手机在线观看| 久久久久久久久久久免费精品| 国产成人啪一区二区| 97精品一二区| 人人操av| 亚洲国产成人高清在线| 岛国艾薇凹凸视频天堂| 久久性爱精品一区| 久草国产在线视频| 亚洲国产精品成人综合| 成人免费视瓶| 2025年A片视频精品| 欧美线天码中字| 亚洲第一二区另类图| 蜜臀久久99精品久久综合| 留下AⅤ黄色片| 欧美性爱第一页久久| 熟妇人妻一区二区三在线| 精品妇女一区二区三区| 久久久一级| 嫩草影院在线观看精品| 91麻豆天美国产欧美| 国产福利av精彩对白| av一区二区三区四区| 神马久久午夜| 超碰97网站| 久久久性爱| 999久久久久久久久| 安微少妇操BBB| 躁躁日曰躁2020| 日本欧美韩国日产片片在线看免| 婷婷导航| 国产黄a三级三级三级av在线看| 极品色www影院| AV中文在线| 91狠狠综合久久| 国产精品电影| 少妇与黑人高潮在线| 91殴美大片| 美女淫穴| 中文字幕av一区二区三区人妻少妇| 亚洲自拍欧美色综合| 久久久性爱视频| 91l欧美在线| 欧美亚洲宗合色性图| 天堂亚洲精品久久老牛| 精品9999| 欧美成人免费在线观看| www.黄色在线| 夂久色| 人妻日日夜夜精品| 国产精品九九| 蜜乳AV免费观看| 操逼1区| 久久精品国产免费观看99| 人妻少妇视频在线播放| 91伊人大香蕉| 日曰骚久久精品| 午夜国产综合视频在线观看| 四虎影视永久在线免费| 超碰资源亚洲97| 大肉棒导航| 久久久国产护士丝袜美腿一| 国产亚洲美日韩Aⅴ中文字幕无码成人| 青娱乐欧美激情一区二区| 干婷婷综合网| 久久久久久久一级黄色打同平台| 歐美性天天| 精品国产乱码久久久影院| 无码国产精品96久久久久孕妇| 岛国在线免费视频| 久久精品欧美一区蜜桃| 9九九国产| 亚洲欧洲激情卡通另类文学四射小说网站| 天天综合网日韩7799| 日本福利二区视频| 99无码狠狠久久| 欧美狠狠狠| 国产美女口爆吞精| 精品一区二区三区18| 免费看片黄| 操久久久久久| 天天日熟妇| 青木玲在线不卡| 亚洲天天自拍| 韩日无码在线观看| 884t在线| 欧美一级A一级a爱片久久| 肉嘟嘟www视频在线观看高清| 五月婷在线| 国产欧美日产一区二区三区 - 国产欧美日 | 综合 青草 伊久久 影院 综合| 亚洲天堂资源在线| 成人免费在线网站| 精品久久大胆人体| 乱操乱伦AV| 久久婷婷五月天| 国产一区二区久久| 日本在线激情一区二区三区| 新怡红院| 婷婷丁香五月综合| 99re在线视频| 奇米狠999| 操死我了嗯嗯嗯| 欧美性生活男人的天堂| 亚洲91网站| a级免费在线观看| 色婷婷九月| 午夜精品久久久久久久99| 婷婷av在线中文字幕| 素人播放一区| 久久久无码视频| 在线观看av区| 狠狠干2020| 亚洲无码免费看| 久久伊人青青草| 一级成人性爱| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 久久鲁干| 少妇的嫩逼图片| 99只有精品| 在线洲亚线| 国岛片视频| 亚洲第二页| 亚洲制服欧美另类内射| 午夜操操操| 亚洲精品性爱片| 男人干美女| 国产精品熟女九色九色蜜臀| 97热视频在线观看| 人成午夜免费大片| 国产女同在线观看视频| 96久久久精品| 91热爆在线| 狠狠色五月亚洲91| 国产av高清版| 极品白嫩美女白浆成人福利在线看| 精品少妇一区二区三区| a久久| 久久精品久| 四虎免费看黄| 韩国黄色片精品久久久| 翔田千里AⅤHD无码| 亚洲在钱| www.四虎在线| 91三级理论片播放器| 999色欧美中文字幕| 久久国产视频性吧 | 国产视频一区二区在线观看| 欧美性爱日韩性爱| 男女一进一出视频久久| 超碰久久草| wwwcaobibi| 欧美日韩97| 91麻豆天美国产| 日韩AV一起草| 亚洲熟女乱色一区二区三区| 骚鸭AV| 少妇天堂网络| 亚洲无码色| 日韩综合成人免费视频| 91在线视频国产网站| 97青娱乐超碰久久| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 久热久| 黄片在线免费在线观看| 亚洲天天在线| 蜜臀在线看片| 久久同城AV| AV中文在线可看| 亚洲黄色a级片| dy888午夜老子影视达达兔| 少妇第一页| 日本有码影片下载| 91视频国品一二三区| 欧美一区二区三区四区综合| 日韩精品-原创伙伴| 69综合网| 后入 亚洲 美女 射| 亚欧成人中文字幕一区| 国产精品第一区第一页| 欧美性夜| 国语精品av| 天天综合网合集91| 国产1727欧美| 色欧洲97| 夜夜操中文字幕| 五月天婷婷影院| 屁屁影院一区二区三区国产| 操逼无码一区| 日本人人操人人操| 亚洲欧美国产其他二区| 欧美日本国产日韩激情视频| 国产精品爽爽v| 超碰精品国产无码| 台湾成人无码AV| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 久久男人的天堂| 91热热色| 另类TS人妖一区二区三区| 天天澡天天爽日日AV| 久久99久久99精品免视看婷婷| www.91理论| 成人精品一区二区91毛片不卡| 亚洲图片激情综合另类| 欧美天天干| 日本东京热加勒比久久| 大香焦A片| 在线观看精品国产免费| 亚洲精品久久久久久久蜜桃臀| 日韩中文字幕人妻视频| www黄片免费看com| 激情av| 黄污污污污| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 欧美日产国产在线成人第一区| 少妇熟女1区2区3区| 中文字幕欧美丝袜07资源| 亚洲乱码精品一区二区| 呦呦影院| 啪啪啪精品视频| 国产 丝袜 欧美中文 另类| 操逼日韩无码| 欧美78p| 精品97久久综合| 国产精品在线一区二区| 极品色综合| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 91九色在线| 大香蕉97久久| 天天综合~91入口| 九七超碰| Blackedraw视频一区二区| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 一区二区三区国产精产| 久久超碰天天| 五月丁香激情四射| 韩国一级做A片免费的| 超碰亚洲欧美日韩无| 日韩在线人妻网站| 性交一区二区在线播放| 欧美东京热青青草| 操婢日韩| 长长久久免费视频| 91国内外在线| 成人精品在线免费视频| 在线无码操| 内射中出日韩在线观看视频| 麻豆区久久久久亚| 免费一级特黄特色大片在线观看看| 亚洲精品美女久久久久久久久| 国产免费一区二区三区最新不卡 | 在线洲亚线| dy888午夜老子影视达达兔| 成人一道本免费视频| 欧美顶级黄片AAAAA在线免费看| 婷婷久久综合| 日本最新1区2区3区| 国产精品96久久久久久| 亚洲精品一区二区三区在线播放| 久草婷婷| 欧美亚洲色的图| 在线岛国新天堂8| 五月丁香六月激情| 欧美天堂超碰97| 国产综合色精品在线观看| 能直接看AV的网站| 国产自啪精品视频网站黑丝| 樱花蜜乳av| 97视频在线观看播放与子乱对白在线……| www欧美91| 国产亚洲精品第一最新| 高清肉丝中文无码| 性爱视频无打码在线观看| 大香蕉人妻| 国桃视频产巨乳精品一区二区在线| 污色区网站| 亚洲精品男人的天堂| 欧美在线干| 欧美黑人精品一区二区| 综合网亚洲1| 亚洲日韩精品久久久久一区壹牛| 亚洲s在线观看| 亚洲图片欧美| 96AV精品| 国模无码人体一区二区三| 天天流夜夜操| 91天天综合网| 国产精品视频电影| 九九精品99| 成人热久久精品| 国产精品嫩草影院午夜两性| 亚洲自拍另类丝袜综合| 日本操逼视频不卡直接放| 9/A片| 欧美操人视频| 久久99手机免费视频| 精品一区二区三区国产| 日韩传媒在线| 激情无码日韩| 亚洲第一男人天堂| 国产熟女完整版中字| 开心六月色| 69少妇一区二区| 999综合色| 天天精品| 99夜夜操| 中文字幕诱惑制服人妻丝袜美丝袜美 | 综合 青草 伊久久 影院 综合| 精品无码欧美三级| 91AV天堂| 最近的最新的中文字幕视频| 夜夜爽夜夜高潮夜夜爽| 精品福利视频| 久久久国产成人一区二区三区在线 | 一区二区三区视频| 欧美性爱一区| 999国产精品999| 9精品久久久久| 麻豆久久久一区二区| 青青操网| 国产蜜臀精品一区二区尤物| 97超碰色五月| 久艾草在线精品视频在线观看| 中文字幕天天天天天| 波多野结衣先锋影音| 天天性射网| 婷婷四五区| 国内亚洲精彩视频在线| 日逼97| 青娱乐大香蕉| 国产亚洲色婷婷久久99精品91| 凹凸视频在线一区二区| 色网亚洲人| 欧美成人亚洲精品| 99热这里是精品| 男女日B国产| 四虎影视国产精品| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | a啊啊啊啊啊啊啊啊一区二区| 久操99| 国产美女销魂在线观看不卡| 久久久亚洲精品中文字幕人妻| 歐美一級亂黃99在綫精品| 亚洲色图欧美视频| 午夜超爽| 日日爱99| 色亚洲欧美| 91超碰碰在线| 四虎免费看黄| 人妻出轨一区二区三区| 首页亚洲国产高跟丝袜诱惑视频| 午夜无码精品免费看性色| 99无码| 91久热| 精品二999| 9久超碰| 992这里有精品| 干婷婷综合网| 国产精品视频白浆免费| 亚洲伊人a线观看视频| 97资源亚洲| 懂色av中文字幕一区二区三区天美| 大香交伊人网| 天天插天天射| 麻豆亚洲Av成人无码一区精品| 婷婷五月花| 亚洲色啪| 99ri精品| 色激情五月天| 丁香五月激情五月| 秋霞曰韩R级| 中国东北熟女老太婆内谢| 岛国黄片网站| 91在线视频观看国产| 久久久久久久久久va| 亚洲视频中文一区| 操逼片中文| 欧美人与性动交a美精品| 手机在线中文字幕国产| 国产精品探花视频| 天堂8在线新版官网| 另类图片综合| 一级一性爱免费视频| 久久夜夜| 97超碰9| 中文字幕一区二区视频在线观看| 日本精品中文字幕视频| 激情综合网五月婷婷五月天| 熟女人妻一区二区三区| 任你艹| 国产青一二三| 欧美亚洲性爱一区二区| 怡春苑东京热| 少妇色综合| 97爱b| 亚洲AV不卡在线观看| 久久久久女教师免费一区| 屁股久久久久久久| 东北丰满熟女国产一区| 伊人天堂在线| 又摸又舔在线观看网站| 夜夜高潮夜夜爽夜夜爱爱一区| 大香蕉人妻久久| 亚洲欧美综合| 色哟哟511老熟女| 妺妺跟我一起洗澡没忍住| 欧美天天弄| 亚洲国产精品成人综合| 激情啪啪拍91| 久久精品99| ′ !γ}丶。。久久精品欧美一区二区三区| 国产11页| 国产精品天干天干综合网麻豆| 97国产精选| 五月天久久人妻| 蜜乳中文字幕a在线| 91成人久久| oumeisetu综合| 久久熟女久| 天天在线91| 亚洲色欧美| 日韩性爱再线视频| 一本道综合色图| 97超级欧美| 久久东京热成人| 久久精品国内Av熟女高清| 性爱乱伦一区| 97国产天堂岛| 男人的天堂2018| AAAAAAAAA黄片| 色女网日韩| 91超碰在线观看| 密臀视频三区免费网站| 欧美日韩中文亚洲v在线综合| 欧美综合骚| 欧美日本不卡| 91在线视频免费播放| 国产免费永久精品无码| 毛片17S| 殴美色网| 一级性爱aaaa| 日韩欧美资源| 久久精品福利影院| 欧美一二三区四五区| 色五月婷婷五月天| 欧色性第一页| 国产精品点击进入在线影院| 99国产精品在线观看| 夜夜高潮夜夜爽夜夜爱爱一区| 大学生口爆吞精| 欧美爆操91| 欧美精品成人一区二区在线观看| 91久精品| 国产精品久久发布| 亚洲综合中文字幕有码| 国模精品娜娜一二三区| 亚洲第一页综合在线| 岛国黄色大片网站| 久9爱精品| 99操碰| 怡春院久久| 97色干| 亚洲图片欧美| juliaann丝袜大战黑鬼| 干干干天天| 一区二区三区色综合| 久久久久久精品免费看A级| 亚洲欧美日韩电影网站一区| 亚洲精品aa久久伊人| 久久风骚城市人| 九月婷婷综合| 乱伦日本中文自拍| 久操影视| 久久性爱视频| а√天堂资源官网在线资源| 综合视频91| 国产精品青草综合久久| 97欧美视频| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 亚洲 欧美日韩 另类| 精品人妻一区二区三区四区| 啊a一区在线| 91精品女厕偷拍视频| 亚洲日韩97| 成人在线视频二区| 国产亚洲美日韩Aⅴ中文字幕无码成人| 中文字幕精品亚洲熟女| 丝袜AV一二三区| 亚洲精品一区二区精品| 久热这里| 东北老女人的激情视频| 九九Av| 日韩精品在线观看观看| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 国产天天骚| 99久久久无码国产精品性男| 97国产人人| 色偷偷超碰亚洲| 精品久久久九九九孕妇| 激情久久久| 亚洲一区操| 人妻熟女一区二区三区视频| 欧美大香蕉久| 丝袜足交视频| 欧美综合传媒| 欧美日韩国产男人| 一二三啪啪专区| 免费视频a级毛片免费视频| 男女日B国产| 久久久久久久| 九九九九九九免费视频| 久久精品视频28| 久久久一级| 国产精品久久久三级无码| 国产精品露脸在线观看| 久草午夜| 亚洲欧美洲综合| 99热99re6国产在线播放| 人妻出轨一区二区三区| 9久超碰| 99熟女| 日韩成人性爱电影在线播放| 岛国在线一区二区三区| 粉嫩av久久一区二区三区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 伊人影院综合是一个与深夜成人在线| se吧提供91精品国产91久久久久久| 久久久啊啊啊| 亚洲Av诱惑| 青青草综合在线| 欧亚韩国999| 91 综合 色| 91丝袜在线视频| 亚洲情色在线| 97AV在线免费观看| 97精品国产精品免费观看| 成人精品视频一区二区| 国产天天骚| 中文字幕视频一区视频二区| 一个人在线看的黄色电影网站| 亚洲色吧网| 91 手机在线播放 绯色| 国产怡红院| 91 丝袜在线| 久久久久久久久久黄色网| 国产91精品久久久久久久网曝门| 欧美色图私拍91| 99re69| 国产成人精品午夜福利| 日韩淫色网| 久久精品国产97欧美精品亚洲 | 亚洲国产精品V?在线播放| 亚洲黄片免费在线播放| 日韩综合无码色欲vv| 最新三级网址| 大地资源在线观看中文第二页| 婷婷丁香五月激情啪啪| 日夜啪电影| 欧美少妇第一页| 亚洲污污网站| 欧中美三级一区二区三区| 少妇精品久久| 国产对白刺激视频| 在线观看av区| 嗯嗯,啊啊,国产精品| 欧美A√综合网 | 精品丰满熟妇人妻一区| 日本一区不卡| 中文字幕亚洲永久精品| 亚洲无码99| 爱欲AV| 91九九九吃| 777超碰| 欧 美 自 拍 偷 拍| 综合欧美日本三级| 免費人妻夜夜爽天天爽爽一区| 北条麻妃性愛视频| 校园激情狠狠四射| 日本性爱欧美性爱| 一二三区在线| 国产久久男人天堂| 欧美少妇色图| 网页导航五月天免费一二三区 | 96久久久久| 亚欧视频在线| 91美女视屏| 91在线丝袜| 亚洲无码 国产无码| 欧美日韩日产免费网站看| 婷婷操逼| 人妻日日干| 97精品一二区| 男生通女生屁股| 精品国产一区二区三区在线播出| 九九热在线精品视频| 老熟妇综合| 91成人无码| 在免费jIzzjIzz在线视频| 有码人妻系列| 超碰2017| 大香蕉综合| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 久久久亚洲熟妇资源| ji熟女.com| 丝袜制服字幕在线| 9丨久久九九九 | 涩亚洲欧洲| AV天堂国产| 少妇诱惑视频| 精品少妇999| 婷婷色综合| 4tube欧美女厕所| 亚洲成A∨人影院在线欢看| AV在线资源| 国产精品成人AV片免费看网站| 天天日天天舔| 男人的天堂com| 色色色色电影网| 亚洲诱惑天堂| 久久久精品视频免费观看| 一区二区三区成人| 久久黄色视频一区二区三区| 国产精品色哟哟| 91精品无码久久久久久久| 欧洲天天在线| 亚洲本色精品一区二区久久| 欧美熟妇视频| 亚洲不卡三级手机播放| 欧美日韩夜夜| 蜜臀一区二区三区在线| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 性爱AV天堂| 国产传媒操逼视频| 嗯嗯啊啊的视频| 久久精品国产72国产精品福利| 国产不卡的视频 | 1024精品在线| 欧美性爱97超碰| 中文久久| 欧美亚洲美少妇一区二区| 欧美一级A片不卡视频。| 日韩无码久久熟女一级片| 日本操逼二区| 色九九久九九| 97人妻色| 人妻一二三区| 97天天插| 久久久久13| 日熟女| 91天天美女| 中文字幕片| 国产美女mm131爽爽爽爽| 日韩精品视频在线观看一卡二卡| 97爱爱官网| 天天淫人人妻日日色| 亚洲一区日韩精品| 精品二区三四区五电影 | 婷婷色香伊人| 日本99一区二区| 曰韩成人免费视频| 清纯唯美亚洲| 天综合网欧美| 日本有码久久| 亚洲,日韩,欧美,成人播放 | 久久ww| 五月天我淫我色av| 懂色av中文字幕一区二区三区天美| 九九热精品| 国产在线能看的你懂的| 国产天天噜一噜久久久| 欧洲免费一区二| 成人免费福利在线观看| 91精品人| 欧美后入式| 麻豆福利视频导航| 五月丁香啪| 日逼逼免费看| 亚洲色欧美| nuu12国产麻豆精品| 欧插网站| 久久99精品视频| 69少妇一区二区| 中文字幕一区二区无码成人| 亚洲熟女乱综合一区二区三区| 欧美精品99久久久| 日操粉逼逼| 色欲久久久久综合网| 婷婷精品久久av影视| 天美欧美国产| 亚洲精品久久久久久久久豆丁网| 国产超碰人人爽人人做| 国产AAAAAABBBBB| 欧美AB在线| 五月天人妻综合| 色哟哟1区2区| 九九拍拍精品视频在线播放 | 日本中文熟女视频| 少妇淫妇久久久久久久| 熟女露脸激情自拍视频| 国精综合一二三区影视| 一区二区三区国产精产| 丁香六月天| 欧美性爱精品一区二区| 人人摸人人添人人操 | 五月天综合在线| 日本色色的视频| 成年女人黄网站| 国产精品区在线12p| 中文字幕av亚洲精品| 78久久| 婷婷五月天激情四射| 亚洲欧美激情小说| 桑老女人九区| 中文字幕一区二区三区人妻不卡| 五月天九九日国产精品一区二区三区| 操淫穴亚洲五月丁香| 91精品国久久久久久无码| 欧洲乱码一区二区| 久久一留热品黄| 国产农村妇女精品1区二区| 久久久久久中文字幕中文字幕最新| 久久精品小视频| 亚洲综合小说另类图欧美视频激情小说色五月天| a级理论午夜日本| 国产精品99久久久www| 日韩女模中文造逼| 丁香婷婷色五月| 亚洲日产专区| 大香蕉伊人亚洲| 久久曰曰| 长久操视频| 疯操AV| 91精品人妻一区二区三区蜜桃| 97在线免费看视频| 综合久久久久久久久91| 精品中文字幕第一页| 精品亚洲黄色片 国产精品导航一区二区| av天堂天堂av日韩| 另类小色呦| 日本久久精品| 亚洲熟妇丝袜在线观看| 久久综合女优| 女人18精品一区二区三区| 三及片网站| 视频一区二区免费在线| 国产日韩在线播放av| 午夜福利视频在线一区| 婷婷久久五月天| 97干在线看| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久久爱97| 久久久久亚洲Av无码专区老牛影视| 超清福利精品视频在线| 热99这里只有精品| 久久人人妻| 日本中文字幕一区| 精品亚洲天堂| 麻花传媒免费网站在线观看| 久久久久人妻| 成人一区二区三区四区| 精品在线78| 欧美的性爱网站免费| 综合久久欧美| 亚洲第一页欧美| 欧美色亚洲色| 久久久久久久久久va| 日本中文字幕在线视频 | 国产久久久久久| 国产熟女完整版中字| 另类小说五月天| 不卡一区视频| 色吧5亚洲| www色婷婷| 中文字幕AV片| 亚洲综合另类| 无套内射性感少妇视频| 91欧美美女日韩国产婷婷| 国产97av| 欧美成人AⅤ大片在线观看| 国内91熟女人妻丝袜天天精品视频在线| 久久久中文版| 女人天堂av在线播放| 留下AⅤ黄色片| 久久一二三四不卡| 精品久久久久久中文字幕视频免费| 国产剧情AV不卡在线观看| 麻豆国产av网| 国产白丝av| av在线资源| 中文熟女五十乱码在线| 秋霞网—男女啪啪亚洲免费体验区| 激情婷婷丁香| 亚洲综合色图欧美| 人妻-91porn| 97se综合| 亚州免费啪啪视频| 欧美美女在线高潮999| 日日摸天天爽夜夜欢| 亚洲午夜av| 中文字幕精品三级久久久| 熟女五十路一区二区三| 色婷婷综合久久中文字幕雪峰| 中文字幕乱码在线观看| 99操视频| 中文字幕国产| 不卡免费av在线播放| 少妇内射视频| 日va操| 久九9精品| 蜜乳性色无码专日粉嫩骚逼AV| 97看操| 美国精品国产精品| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 中文字幕亚洲永久精品| 欧美韩国你懂得在线| 亚洲h片在线免费观看| 91天美传媒精品| 久久透逼视频| 九九九九精品一区| 欧美日韩一区二区三区四区蜜桃| 国产久久一区二区| 蜜乳AV一区| 91老熟女91老女人| 亚洲色欲天天人妻无码系列专区| 精品免费成人久久| www.超碰| 蜜臀视频网站| 精品乱子一区二区三区99| 91影库| 97草草| 99re在线观看| 亚洲97综| 欧美熟妇操操视频| 日本视频在线观看污污污| 亚洲97网站| 婷婷啪啪| www国产无码| 夜夜福利| 97色色婷婷| 2017大香蕉| 干B| 日韩av乱伦| 九九九精品| 亚洲综合图片在线| 五月天激情四射| 国产午夜精品理论片a大结局| 青青草手机在线免费观看| 99性爱在线观看| 欧美 日韩第一性色| 欧美天天插| 日韩熟女乱伦中出| 男人的天堂kva| 日本视频在线中文字幕| 大香蕉国产中文自拍| 久久五月天婷婷丁香中文字幕| 久久久91福利姬| 久久欧美按摩999| 国产理论视频在线播放| 91宗合网| 媚薬在线视频麻豆| 亚洲无码99| 亚洲欧美综合区自拍另类| 999久久久久久久久| 男人的天堂2018.| 91 亚洲 欧美 日韩 国产 综合| 青草成人免费视频一COm| 91国产美女丝袜足交精品视频 | 蜜桃午夜视频一区二区 | 超碰97人人乐| 日韩国产十八禁| www.久久99| 精品视频免费在线一区| 久久久久久九九九| 欧美亚洲高清晰| 久久成年精品| 日韩免费人妻色情网站| 一区二区三区免费岛国片| 操一操摸一摸| 日韩本不卡视频在线观看| 青青草乱入乱欲视频在线观看| 这里只有精品视频在线| 精品人妻一区| 黄色操人| 日本欧美中文字幕| 国语精品av| 中文一区二区| 日本999精品| 91 国产丝袜在线放观看| 超碰在线成人| 国产精品探花在线| 亚洲精品性爱片| 国产精品白领在线观看| 人人澡人人干| 蜜臀99久久精品久久久久久| 伊人精品视频| 美女91在线观看| 亚洲免费精品一区| 五月黑AⅤ| 亚洲成人碰碰| 丁香六月婷婷久久综合| 色综合尤物| 中文字幕交换人妻| 18禁免费视频| 日本成人A片网站| 性色av大全| 无码动漫av中文字幕| 99热在线观看| 神马午夜久久| 女生久久网| 999精品女人| 蜜桃久久一区二区| 啊啊啊啊啊啊好多水| 亚洲成人ab| 殴美性天天| 亚洲欧美伦综合| 欧美+日产+中文| 欧美性夜| 97天堂| 久久综合九色综合欧洲98| 极品销魂美女一区二区 | 午夜色婷婷| 色婷婷激情| 久久久爆乳翘臀一线天伦理视频| 丁香五月激情啪啪| 国产11页| 怡红院怡春院| 日韩三级在线观看mp4| 国产av热热色| 少妇久久久免费| 新怡红院| 中日韓欧美高清| 国产粉嫩蜜臀av一区二区三区| 综合亚洲欧美精品日韩?v| 国产9 9在线 | 亚洲| 高清国产成人无码| 日韩亚洲Av人人夜夜澡人人爽| 六月婷婷综合| 久久久久久夜夜夜夜夜| 午夜欧美J进J出白浆流出久久久 | 日熟女| 乱伦3P视频| 婷婷五月天激情四射| 国产青一二三| 一本久久精品中文字| 91色射| aV中亚| 一级黄色性爱A级片| JuliaAnnXXX888| 欧美91精品国产自产| 日韩国产欧美伦理在线| 免费看一级a性色生活片久久无| 久久久一级| 国产熟女二区| 78精品在线| 亚洲精品乱码线路中文字幕| 在线观看综合精品亚洲| 国产黄a三级三级三级av在线看| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 91强热人妻| 国产欧美精品日韩区二区麻豆天美| 久久AV无码1区2区3区| 超碰九九| 国产一区自拍欧美日韩| 久99| 国产免费一区| 99婷婷一区二区| 欧美刺激色黄片免费看| av操操不卡| 99re99在线视频| 黄片免费视频2019| 99精品网| 人妻素股| 亚洲A曰本VA欧美VA视频| 国产精品视频精品一二| 一区二区三区蜜桃成人撸久久东京热| 久久久精品,3| 成人麻豆av电影网站| 人妻嗯啊啊在线播放| 一区二区视频你懂的| 91w欧美| 欧美在线干| 少妇色综合| 100啪啪视频大全| 日本精品一区三区| 四虎影视国产精品| 手机在线视频国内精品| 9热9热综合网| 久操免费在线| 91欧美| 欧美少妇高潮视频| 蜜桃视频成a人v在线| 一区二区三区国产精产| 啊v在线观看视频| 午夜福利视频在线一区| 一区,二区,三区视频| 超碰精品日韩欧美国产| 人人人人人人少妇| 涩亚洲欧洲| 国产黄色 A 片免费看| 五十路熟女工口| 日本中文字幕不卡视频| 欧美制服网站美腿丝袜| 男人的天堂com| 国内精品伊人久久久久影院会| 做爱福利视频一区二区| 18禁无码永久免费无限制| 啊a一区在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 亚洲精品1区| 在线岛| 嗯嗯啊好大| 九月激情婷婷| 亚洲熟女乱综合一区二区三区| 国产精品视频自拍在线| 久久久久久久久久久久久久久乱码| site:sinbotex.com| 一区二区偷拍拍视频| 另类欧美色| 天天综合色电影| 色牛aV| 亚洲码在线中文在线观看| 精品91摸| 国产一区二区免费福利片| 91在线限制级| 7777奇米影视久久| 亚洲性少妇| 亚洲国产麻豆一区二区三区| 激情五月天校园春色网| 天堂中文资源在线bt| 国产成人啪一区二区| 热99这里只有精品| 国产9熟妇视频网站| 深爱五月婷婷| 国产精品美女视频诱惑| 国产农村妇女精品一二区| 国产亚洲精品久久久久小| av72网| 国产18精品亚洲精品| 可乐操在线| 丰满人妻一区二区三区免费,| 蜜臀久久99精品久久久久| 狠插 制服 自拍| 中国女人内射6XXXXX| #NAME?| 国产原创精品| 人人操肉肉| 怡春院久久| 黑人中出21连凳花野真衣| 国产成人亚洲精品无码古代早漏男| 国产中文字幕在线观看| 亚洲欧美一区二区三区在钱蜜桃 | 大香交伊人网| 在线观看一级α片刺激高潮视频| 久久99精品九九久久久婷婷| 色综合久久888| 女性喷水高潮在线观看| 性交一区二区在线播放| 久久久久久久人妻| 国产一区二区在线播放量| 天美国产三级传媒| 欧美成年人性爱视频免费观看| 亚洲国产欧美日韩人妻日中文| 国产无马在线| 亚洲鸥美色图| 成人婷婷丁香| xxxx网站亚洲精品| 啪啪啪男女亚洲中文字幕99| 日日天天久久啊啊aaa| 亚洲国产精品无码AV在线| 大香蕉综合网| 亚洲综合69| 精品久久久久,69国产成人精| 免费的很黄很污的全部视频| 中文字幕视频二区| 都市激情人妻一区二区青青操视频 | 人妖欧美一区二区| 不卡码视频| 久久久五月天| 神马久久久久久伦理片| 日本色日夜干| 超碰偷拍| 久久久久久久久久久999| 色婷婷电影网| 思思性爱| 乱伦一二三区| 亚洲熟女人妻中文字幕一区二区| 亚州色国| 欧美爆操91| 一本道综合色图| 无码抄逼网| 天天艹天天日| 少妇综合网| 加勒比无码毛片| 人妻五十路在线| 久久久久七视频| 精品国产乱码久久久久久久久1| 综合久久欧美| 精品一啪| 欧美日韩色综合网| 国产中出内射一区二区| 亚洲熟女人妻中文字幕一区二区 | 久久久 国产精品| 18禁美女裸体无遮挡啪啪| 99亚洲精品| 蜜臀久久99精品久久久久| 久久久月天| 久久一二三四五六七八九区| 色欲色香天天天综合网www-亚洲综合国| AV天天综合| 欧洲综合视频| 国产精品久久久亚洲一区| 99久久99九九99九九九| 婷婷中文网| 极品美女福利在线观看| 91高清无码下载| 日韩亚洲精品一区二区| 老熟女搡BBBB搡BBBB视频| 日产欧美电影一区二区三区| 最新日本中文字幕| 白丝一区| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 很狠操| 精品大全99999| 国产一区二区精品久久久不卡蜜臀| 日韩专区久久久| 99精品无码| 九九九一二三| 女生91网站| 久久AV无码AV| 伊人操你| 国产一级特黄大片处女| 人人看欧美性爱| 中国东北熟女老太婆内谢| 人人操人人摸人| 狼人久草| 色综合一区二区三巨| 日韩精品人妻中文字幕有码午| 91久久18禁|