久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|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
返回資訊列表
人人插人人搞人人操| 欧美A片中文字幕| 久久精品国产亚洲AV无码电影| 欧美一二三区四五区| 女同女同恋久久级三级| 亚州黄站| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 欧美中文综合| 中文熟女五十乱码在线| 日韩久久三区| 精品亚洲黄色片 国产精品导航一区二区| 9九九国产| 麻豆亚洲Av成人无码一区精品| 超碰精品日韩欧美国产| 蜜桃狠狠色伊人亚洲综合网站| 蜜桃视频精品一区二区三区| 韩国一级婬片A片AAAAA| 97欧美资源| 欧美三级一级| 国产婷婷一区| 女优视频第10页| 亚洲国产精品99久久久| 国产二区三区免费视频| 欧美AB在线| 激情婷婷丁香| 色欲人妻一区二区在线| 亚洲日韩青青草色月| 99热最新| av婷婷色婷婷色六月| 国产久久成人| 日韩av在线精品观看| 果冻传媒A片一二三区| 久热婷婷| 男人的天堂啪啪| 最近的最新的中文字幕视频| 在线观看成人性爱免费小视频| 国产97在线视频| 五十路熟女,国产欧美精品区一区二区三区| 欧美婷婷五月天| 亚洲一区二区三区中文字幕| 国产精品无套内谢| 久久久亚洲欧美综合| 亚洲不卡三级手机播放| 中文字幕熟女人妻丝袜| 国产日韩精品suv| 亚洲图片另类| 91久久久亚洲| 先锋激情∨在线视频播放| 久久久96| 一本精品日本在线视频精品| 黄视频免费| 少妇厨房愉情理伦片bd在线观看| 91伊人久| 色久桃花影院在线观看| 成人麻豆av电影网站| 日韩性爱免费观看视频| 国产女乱淫真高清免费视频| 人人贴人人摸| 亚洲制服欧美另类内射| 99久在线精品99re8| 操逼片中文| 亚洲强奸乱伦影视网| 日韩A优精品在线观看| 99精品成人免费看| 99精品网| 夜夜骑天天燥| 四虎884| 亚洲交换| 亚洲国产丝袜熟女av| 久久老女人| 日韩免费中文字幕视频| 激情小说成人日本无码一| 伊人网综合在线视频| 国产精品激情久久久久久久| 日韩黄色成人性爱| 91九久| 日韩影片中文字幕一区二区三区| 国产日本熟女顶级一区二区三区视频| 九月丁香婷婷| 玖玖资源视频一区二区三区| 人妻久久一区二区三区 | 欧洲一级性爱视频在线观看| 成人七区| 亚洲成人一二三区| 国产精品美女| 久久久 国产精品| 日韩一级二级| 操逼999| 嗯嗯啊啊啊好爽| 97亚洲精品| 眼镜人妻101.com| 青草青草久热| 欧美极品少妇交| 啊操爽品善一区二区三区| 亚洲91综合| 欧美乱欲| www久久99| 天美传媒国产原创中文字幕亚洲欧美另类| 亚洲成人妻日韩在线| 色噜噜人妻av中文字幕| 欧美性爱一级操| 亚洲人妻一区二区三区| 日韩丨制服丨中文|在线| 天天92av| 色吧5亚洲| 精品国产Av无码久久久亚洲| 人人插人人搞人人操| 久悠悠av| 大香蕉2017| 97色网| 2020视频1区2区3区| 男人天堂综合| 好吊色综合| 99在线无码精品秘 入口黑人| 国产无马视频| 操亚州| 欧美日韩亚洲天堂| 最新欧洲欧美日本激情网站| 青草影院内射高潮| 国产欧美一级在线观看| 91成人亚洲色图| 中文字幕精品一区二区精| 欧美少妇大量自拍视频在线观看| 蜜臀va69| 国产树林里野战在线看| 极品AV网站在线观看| 极品销魂美女一区二区| 婷婷成人五月天| 97射欧美| 九九视品黄色| 夜色91| 国产av尤物| 久久中文字幕女同性恋一区| 精品亚洲国产成人AV制服丝袜| 亚熟hd视频在线| 亚洲欧美高清无码| 啊啊啊啊啊操我视频| 91性感网站| 亚洲AV性爱电影| 九九九久久久久| 亚洲AV无码乱码| 成人五月香网在线| 国产一在线观看| 久久、1234| 国产精品一区二区手机看片| 青青草视频在线观看一区二区| 97少妇人妻中文字幕久久| 永久免费av无码网站国产app| 国产精品交换一区二区| 搡老熟女免费视频 | 亚洲国产天堂| 人妻久热在线| AV中文字幕三四五| 欧亚日韩三区| 91国产精品在线看| 亚洲欧洲日本精品中文a∨| 毛片17S| 少好三P| 一区二区三区精品黑丝白丝酒店对鸡 | 91在线美女| 国产区在线| 99色色网| 婷婷丁香六月天| 大香蕉线| 淫色网综合| 国产精品探花视频| 看全色黄大色大片免费视频| 人人澡综合涩| 97摸视频| 欧州91高潮| 丝袜综合色图| 99日精品欧美国产| www.yeyecao| 久久久内射良家| 任你草| 国产真乱mangent| 日本孕妇孕交| 蜜色网色哟哟| 亚洲色久| 精品欧美А∨无码黑人大荫蒂| 色九九综合AV| 人人喜人人妻| 99这里都是精品| 日本中文熟女视频| 亚洲在线a| 96AV久久久| 丁香五月影院| 92午夜免费福利视频| 欧美97色| 91精品国| 色五月激情AV在线| 伊人色综合欧美| 欧美成人一区二区| 91亚·色| 99色综合| 欧美成va视频网站| 亚洲无992tv| 碰超人人在线一区二区三区| 亚洲有码 视频一区| 亚洲av乱伦色图网站| 美女久久久久久久久久久| 大香蕉综合| 婷婷五月在线视频| 成人免费福利在线观看| 日本一区二区三区午夜观看| 日韩少妇无码| 奶水 人妻 哺乳 在线| 久久久男人的天堂| 色综和网| 大香蕉伊然在亚洲91| 免费看污网站| 爆乳免费黄网站| 蜜臀AV网站| 亚洲色图尤物视频| 三级色综合| 国产狂喷潮在线精品| 欧美亚洲中文| 亚洲伊人成综合成人网| 大但人体久久久久| 欧美精品久久| 中文一区在线日| 久久久∴| 另类av综合久久| 久久9久9久99久9久9| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 国产精品白丝| 丝袜人妻av一区二区| 美女裸体无遮挡永久免费观看网站 | 欧美视频一区二区三区| 囯产精品久久久久久久久久二区三区| 91熟女丨91老女人| 97视频www| 九九九草| 欧洲色综合| 99最新日韩偷拍视频| 91丨精品丨国产丨丝袜| 99re在线精品78| 热久久九九热| 国产精品熟妇一区二区三| 蜜臀久久久国产| 999 久久久| 青青草久草AV| 人人妻人人爽一区二区三区| 亚洲电影中字一区二区| 91大神精品长腿在线观看网站| 女人与公拘交酡2020视频| 欧美自拍偷拍综合图片| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 道久久五香丁月婷婷激情综合| 亚洲淫色网中文| 久久 久久国内精品亚洲| 中国国国产一级特黄毛片| 另类欧美综合| 久久这里只精品免费福利| 国产精品盗摄 偷窥盗摄| www.久久最新地址| 成人五月香网在线| 亚州男人的天堂| 国产女人9999| 大香蕉线| 婷婷五月色| 天天综合影院91| 黄总AV色图| 97超碰免费生活| 婷婷性网| 18禁的网站在线| 欧美激情总合网| 亚洲清纯唯美| 久久春色| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 少妇淫妇久久久久久久| 欧州一区二区三区四区| 99性爱| 99re免费| 日本高清_区二区三区| 五月天色综合| 97射欧美| 亚洲精品乱码久久久久久蜜桃麻豆 | 色哟哟-国产专区| 亚洲国产精品久久久久婷婷老年| 国产真实子伦对白| 狠狠操综合| 激情六月婷婷| #NAME?| 九九干| 草b在线| 成人一二三区| 日本精品高清一二区一本到| 精品一久久久| 亚洲色图欧美色图另类图片| 欧美日韩操逼动图| 嗯嗯啊啊用力视频免费| 人人操,人人插| 东京太热久久久| 欧美亚洲特P| 97国产高清视频在线观看| 91麻豆天美国产欧美日| 97中文综合| 91碰超| 草伊人高潮喷水超碰| 欧美色另类| 爱射综合| 欧美综合另类| 嗯嗯嗯啊啊啊操的我好爽| 无码二级三级| 丁香婷婷色五月| 好爽要喷了| 日韩亚洲中文有码视频| 啊a一区在线| 中文字幕乱码在线| 91人妻视频在线| 中文字幕97| 日韩精品一区二区三区四虎影视| 日本不卡中文| 国产精品色片一区二区| 中文字幕人乱码中文字的预防方法 | 国产AV高清AV无码| 69久久| 丁香五月av| 男人久久天堂| 友优传媒精品在线一区二区| 视频在线观看青青99国产| 亚洲无码视频免费在线观看网址!| 免费精品福利在线观看| 亚洲色婷婷久久久综合日本| 久久久久久夜夜夜夜夜| 精品国产三级av韩国在线| 日本中文字幕在线视频| 丰满人妻一区二区三区| 有码人妻系列| 93人人操人人| 亚洲图片欧美| 亚州色图欧美| 国产自偷自拍一区| 一本色道无码DVD中文字幕| 91在线丝袜视频| av在线免费一区二区| 国产精品粉嫩福利在线| 天天影视综合网欧美精品| 色婷婷成人| 国产后入| 96国产污污污丝袜| 激情第四色| 日B操| 中文字幕AV片| 婷婷中文字幕| 精品视频免费在线一区| 色九九九九九九| 91亚洲不卡一区| 综合久久久久久久综合网| 国产精品乱码久久久久久久久| 亚洲色图超碰在线| 黑人精品成人一区二区三区| 人人操人人爽人人操人人| 天操天操夜操夜月月年年操操| 偷拍 精品另类 凸凹了四区| 在线国产福利网址导航| 97香蕉网| 91人人| 天天超级碰碰碰| 99热在线观看| 久久精品亚洲成a人天堂| 9国产超碰| 999久久久久久久久| 亚洲青青青视频在线| 日本人人操人人操| 国产操逼逼网| 亚洲麻豆av一区二区| 在线小说视频一区| 18禁久极品美女久久哦哟呀!| 素人美腿视频网站| 99热99在线| 一区二区影院| 久久伊人亚洲AV无码网站| 97超碰欧美| 九久久精| 亚洲AV色图一区| 久久熟女久| 国产人伦精品一区二区三区 | 玖玖资源视频一区二区三区| jiujiujiujingpin| 久久曰曰| 亚洲av热热色| 中文久久96| 自拍欧美| 欧美黄色图片| 午夜精品久久久久久久男人的天堂| 亚洲免费人妻在| 日逼逼免费看| 日韩在线一区高清在线| 无色无码| 加勒比在线视频一区二区三区 | 色一射色一射| 亚洲。日韩。欧美| 精品视频日日夜夜| 操B久久| 91色噜噜狠狠| 九九九久久久久| 久久麻豆一区二区| 三级片大波波| 好看的91视频| 亚洲免费97免费| 97资源免费视频| 亚洲男人的天堂网| 操逼无毒无码免费视频| 精彩久久中文| 啪啪啪亚欧美视频| 亚洲精品97| 欧美色www亚洲国产阿娇要播| 亚洲精品国产日韩无码AV永久免| 粉嫩av久久一区二区三区| 亚洲无无码αⅴ每日更新| 99亚洲精品| 老司机老司机午夜影院| 亚洲精品成人激情在线| 91粉芽高清在线一区二区 | 97操在线| 天天影视综合色| 日本精品五区| 免费一级黄色录像影片| 国产精品宅男免费| 国产丝袜视频| 97超碰天天爱天天爱| 欧美天堂第二区| 91美女视频直播| 思思热一热婷婷热一热| 欧美碰碰综合色| dy888午夜老子影视达达兔 | 亚洲AV不卡在线观看尤物| 色综合久久夜色精品国产天堂| 中文子幕一二三| 精品久久艹| 东京热男人的天堂| 亚洲少妇综合在线播放| 激情第四色| 97se综合| 欧美天天性| 久久久精品电影| 啪啪免费| 人妻久热在线| 久久久久国色αv免费观看| 亚洲精品久久久久毛片A片拉屎 | 亚洲天堂资源在线| 搞中出久久| 麻豆蜜桃视频在线观看| 骚逼自拍99| 国产精品香蕉| 中文字幕精品区先锋资源| 肥臀熟女福利视频一区二区| 青青草综合在线| 日韩av电影成人在线| 欧美人与性动交a美精品| 久jiu久神马影院| 免费亚洲国产精品久久一区| 中文字幕国产在线天堂| 色综合色欲色综合色综合色综合| 亚洲和欧美裸体美女双飞视频| 久久久精选| 欧洲成人性爱视频| 亚洲中文制服诱惑| 亚洲欧美碰碰| 久久精彩免费视频| 深夜激情| 婷婷丁香六月天| 日韩欧美中文字| www.99色| 欧美性爱97超碰| 三级色影综合网| 色噜噜人妻丝袜a∨先锋影 | 久久久98网站免费视频| 成人九九| 欧美做爰无码A片视频| 蜜臀th| 欧美日韩另类在线播放| 国产成自自拍在线观看| 少妇淫妇久久久久久久| 蜜乳av首页| 欧美黑人91| 无码丰满熟妇一区二区浪潮AV| 国产久久视频| 日本色色视频网站| 国产美女精品| 日韩三A大片在线观看| 黄总AV色图| av毛片aaaaa免费看| 韩国久久97| 欧美日韩青操| 六月丁香久久| 综合第一页| 精品国产少妇高潮视频| 青娱乐999| 久久久久久久久久久久黄色| 国产a片操逼| 五月久久HDAV| 国产精品美女在线一区| 精品综合久久久久久97| AV无码久久久精品| 91色宗合| 亚洲熟妇自偷自拍另欧美| 亚洲图片激情小说| 不卡码视频| 91爆操视频| 青娱乐 青青青操 日逼| 操久久久久久| a片偷拍视频| 欧美一区二区在线资源| 亚洲少妇综合在线播放| 熟女91网站| 91丝袜美女| 约操熟妇| 97超碰超| 人人搡人人肉久久精品| 大香蕉九九| 欧美十八禁视频| 99蜜桃臀亚洲成人在线观看| 久久香蕉国产线看观看猫咪av| 久操免费在线| 久久亚码| 五月天婷婷影院| 色色色色日本| 久 久无码人妻AV| 亚洲淫色网中文| 日本污ww视频网站| 国产对白刺激视频| 中文字幕丝袜| 嗯嗯啊啊好疼| 欧美久久婷| 色成人Www精品永久观看| 天天cao在线| 99re这里| 自拍盗摄一区| 色婷婷五月综合激情中文字幕| 狠狠色伊人亚洲综合网站色| 日韩无码第3页| 熟妇人妻一区二区| 久草五月| 久9视频| 天天综合欧美综合| 欧美少妇熟女| 无码聚合| 国产亚洲日本精品在线| 色色毛片| 一区二区三区不卡视频| 亚洲中文字幕久久无码精品| 青青草乱入乱欲视频在线观看| 国产又色又爽又舒服的三级视频| 国产日韩欧美中文在线播放 | 日韩欧美亚洲一区二区三区影院| 亚洲欧美国产中文视频| 少妇大屁屁| 国产熟码AV| 日本欧美色| 久久99国产综合精品女同| 亚洲国产奇米影视久久| gogogo免费高清看中国国语| 97爱爱| 揉揉日日日日| 精品欧美乱码久| 亚洲欧美天| 青草视频人妻在线观看| 青娱乐大香蕉| 老鸭窝黄色视频网站| 2025亚洲男人天堂| 青青11操操操操操操操操| 日韩欧美午夜视频在线| 蜜乳AV网址| 欧美日韩 强奸乱伦| 国产二区三区粉嫩在线| 欧美中文狠| 日日橹狠狠爱欧美超碰| 爱欲AV| 熟妇人妻一区二区三区| 2017大香蕉国产精品久久| 成 人 影视 一区 二区 三区 四区| 婷婷99狠狠躁天天躁| 青青草天天亲夜夜操网| 午夜天堂精品久久久久91| 精品国产片亚洲一区| 日韩av乱伦| 国内毛片无码一级毛片| 2010男人的天堂| 欧美1727免费观看视频| 九色97| 五月丁香六月婷综合成人综合| 综合婷婷| 蜜桃精品一区二区三区ww| 91人妻人人妻| 久久久蜜桃一区二区三区| 性爱动态120秒| 福利风月五月天影院| 亚洲美女30b| av草草在线电影| 97超碰精品图片| 91老司机在线| 国产曰批免费观看久久久| 天天综合网日韩7799| 国产亚州高清国产拍精| 午夜无码精品免费看性色| 五月婷婷丁香六月| 精品v1区| 激情久久日韩精品中文字幕麻豆| 久久专区| 黄色一区二区秘书性感| www久久99| 色婷婷成人综合| 国产第11页| 天天摸天天操视频| 三级日韩一区二区三区| 日逼国产| 67914亚洲精品| 九九国产| 亚洲另类春色| 家庭乱伦网站国产| 欧美日韩222| 热久久无毒不卡| 青青在线视频日韩欧美| 国产www色在线观看| 久久婷婷五月天| 欧美伦乱爱| 亚洲色综网| 日韩性爱视频在线免费观看 | 久久久亚洲熟妇资源| 亚洲精品国产精品成人| 日韩精品在线观看网站| 国内精品久久人妻性色av| 國產尤物AV尤物在線觀看| 9久综合网| 一本色道久久综合亚洲二区三区| 日韩欧美大片免费高清啪啪| 色欲天天综合网| 亚洲另类久操网| 黑人在线91| 国产东北女人在线视频| 亚洲 欧美都市激情| 欧洲一区二区三区四区在线观看| 丰满人妻aA一区二区三区| 大香蕉黄色一区| 久久综合女优| 欧美性爽xyxOOOO| 五月婷婷啪啪| 日韩精彩视频| 午夜福利精品| 麻豆伊人网| 日本成人在线不卡一区二区三区 | 91美| 欧美视频一区二区在线| 国产盗摄美女如厕大神作品在线观看| a'v在线资源| 夜夜一区二区| 久久久久熟女| 亚洲中文一区二区三区| 中文字幕久久亚州无码| 美女熟妇色| 蜜臀精品1区2区| 翔田千里A片一区二区| 色99在线| 无套后入双马尾| 国产熟女完整版中字| 日韩美女高潮喷水视频| 国产无码精品高清| 日韩在线97| 天天插夜夜操| 色拍偷亚洲| 日本操大逼| 久久精品免费| 老外又粗又长一晚做五次| 欧美 青青草| 国产真乱mangent| 中文字幕视频免费| 久久久久久精品免费看A级| 99精品久久久久久| 91精品大奶人妻| 国产尤物在线三区| 大奶啊啊好爽 | 人妻啊啊人妻啊啊| 丝袜美腿91| 久久侵犯人妻爽爽爽| 国产精品人妻免费精品| 欧美色图片91| 91成人久久| 九九五月天| 91美女丝袜诱惑视频| 怡红院成人视频| 日韩成人色图| 大香蕉www.超碰| 好色美女九七第一页| 九九九九久久久| 九九九精品成人免费视频小说| 屌妞视频久久久久久久久久久久| 国产 日韩 欧美高清| 中文字幕欧美精品亚洲日韩蜜臀| 久精品无码av一区二免费国产在线观看| 99这里只有精品| 九九天堂| 欧美日韩 强奸乱伦| 熟女AV一区| 六月婷婷色综合| 欧美片第一页| 激情文学小说一区二区| 超碰激情808| 国人欧美精品一区二区| 美女91| 日韩熟女精品无码专区一区二区| 黑人嘿嘿嘿超爽免费视频| 91色插| 亚洲大色堂| 丁香六月婷婷久久综合| 欧美精品一区二区少妇免费A片| 欧美性五月| 99xav| 超碰人人干| 久久欲| 久久久中文| 蜜桃臀一区二区三区久久| 天天91~综合入口| 日本狂喷奶水在线播放212| 性欧美91| 亚洲色图综合网| 久久国产精品一级二级三级| 日韩成人大片一区二区| 秋霞Av理论一级在线| 欧美色图自拍| 久草草一二三四区久久| 精品91摸| 色播综合| 亚洲欧美激情在线视频| 亚洲 欧美 制服 另类 自拍| 97超碰香蕉| 理论久久婷婷网8| 加勒比伊人综合| 97超碰色屌| 久久久久久久 九九九九九九九| 欧美性爱伊人| 免费看国产曰批40分钟怎么下载| 亚洲无码成人精品| 女性91网站| 欧美伊人电影| 日日躁夜夜躁狠狠躁超爽| 久久熟女久| 日本天天干天天搞一区| 刺激精品视频| 欧美少妇一区二区三区| 黄色网址久久精品欧美喷水| 五月丁香婷婷综合| 亚洲综合婷婷| 国产精品岛国片在线观看| 嫩草一区二区在线观看| 日本无码1| 久久黄色视频一区二区三区| 亚洲图片激情综合另类| 91看黄片| 国产无码精品高清| 欧美人人操人人插| 午夜a成v人电影| 九九精品无码专区免费| 日本潮催一卡操| 欧美黄色片在线播放| 无遮挡男女激烈动态图| CCYY草草影院地址入口| 亚洲欧美不卡线| 亚洲美女AV无码| 精品三级在线专区| 亚洲成人黄色在线观看| 国产强奸91| 中文字幕一区二区三区高清| 激情抓乳插进去啪啪啪日韩 | 亚洲色色探花| 中文字幕一区二区三区视频播放| 第一高清av中文字幕| 日本国产欧美高清在线| 亚洲午夜AV| 91 刺激在线| 亚洲AV资源| 美女毛片999| 久草线上视频免费看| 超碰久超碰久| 精品免费视频国产一区| 女人天堂av在线播放| 无码 黑人一区二区三区| 国产精品亚洲天堂网址| 91人妻尻屄视频| 日本天天吊| 丝袜综合| 伦理日韩国产久久| 久久专区| 韩国成人精品久久久免费看| 最近的最新的中文字幕视频| 日韩成人色图| 色娱乐色呦呦夜夜夜夜av| 内射黑丝袜| 亚洲综合第一页| 免费公开人人操| 婷婷亚洲色| 成人在线永久| 欲综合网| 热99re69精品8在线播放| 人人妻人人爽 97人人看碰人免费公开视频| 一级@啪啪视频| 久久激情五月| 人妻人妻天天碰| 婬女免费一二三区A片| 最新日韩黄片| 白丝少妇一区二区| 久久久久白虎| 欧美情色亚洲| 国产免a费看黄片在线| 九九色综合| 色香综合天天影视综合 | www.色99| 狠狠热这里都是精品| 少妇色欲综合网2| www.久久制服糖| 五月丁香色色网| 久久久久9999妇女| 亚洲国产天堂| 国产亚洲精品美女久久久久久2021| 日韩av不卡在线观看| 欧亚乱色熟一区二区三四区| 天天综合站| 日韩av电影成人在线| 五月婷久久| 夜夜青青无码影院| 伊人网高清| 亚洲AV操| 超碰在线人妻不卡| 丰满少妇一区二区三区免费看| 亚州免费啪啪视频| 欧美亚男人的天堂| 综合久久99| 国产一级137片内射麻豆| 欧美夜夜狠| 乱操9999| 国产精品久久久久久久黄无码| 又黑又大又粗 | 91碰超| 美女淫穴| 久久精品国产亚洲AV先锋| 97爱| 91 手机在线播放 绯色| 亚洲97成人在线观看| 东北老女人的激情视频| 蜜汁欧美| 久久精品国产亚洲AV无码电影| 婷婷色香| 加勒比无码毛片| 美国aaaaa一级黄片| 欧美熟妇精品黑人巨大一二三区| 四方色播| 日本99视频| 综合欧美色图| 人人摸人人添人人操 | 九九热在线视频| 天天日B夜夜干B时时操B| 超碰这里只有精品| 强奸乱伦AV网址| 久热伊人99re| 97色碰| 97资源超碰| 一起草三级AV电影在线观看 | 91天天| 无码heyzo高清一区| 免费操逼91| www.四虎在线| 内射夫妻三片| 欧美72网页| 熟女乱伦A| 亚洲综合校园春色| 人人摸人人叼| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 日韩美女啪啪一区| 精品一区二区三区四区外站| 欧美大香蕉同搞| 97热视频在线观看| 欧美丝袜制服久久| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 粉嫩久久久极品| 亚洲色欲天天人妻无码系列专区| 亚洲极品| 日本国产高清色www视频在线| 亚州欧美综合| 日本人妻A片成人免费看片| 91观看 国产白丝| 色一射色一射| 久久黄色视频一区二区三区 | 女人天堂AV五区在线| 一区AV| Aa东京男人的天堂| 狠狠色综合网| 亚洲综合第一页| 91丝袜激情在线| 五月天玖玖资源站| 麻豆成人AV| 少妇高潮99p| 91精品久久久| 熟女少妇视频| 欧美激情片一区二区| 黄色网址在线免费观看| 男人的天堂免费| 精品一久久久| 久久xxxx| 日本成人A片网站| av天堂加勒比| 亚洲综合有玛| 奇米狠999| 亚洲全色网| 夜夜操一区二区| 94色色电影网| 啊啊啊啊啊啊啊啊要喷了| 无码免费一区二区三区啪啪| 中国少妇XXXX做受| 亚洲无码日韩电影| 久久久久久中文版| 韩国久久97| 性开放中文AV高清无码免费看| 国产精品9999| 超碰综合97在线| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 婷婷综合在线| 伊人丁香五月婷婷| 欧美激情亚洲| 欧亚日韩综合精品国产| 蜜桃久久久久久| 免费看日本操逼视频| 日韩无码三级影院| av爱爱爱| 久久精品国产亚洲AV清纯| henhen91| 欧美激情精品| 亚洲无码一区成人免费午夜| 人妻喷水| 伊人午夜福利视频| 无码操逼天堂| 国产精品午夜福利视频| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 精品四五区| 天天弄天天操| 欧美国产日韩高清在线| 国产一区二区欧美日本| 亚洲熟女性高潮久久久| 亚洲国产丝袜熟女av| 色五月AV在线| 黄久在线| 色偷综合| 国产精品久久久久久久免牛肉蒲团| 伊人一区二区三区| 熟女中出视频| 99.色网| 中文字幕精品丝袜| 天美av在线观看| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 男女性无套 免费九一| 啊啊啊好大好深| 麻豆一区二区AV天美| 亚洲大色鬼| 欧洲一区二区三区四区在线观看| 日本性爱欧美性爱| 一级做受视频免费是看美女| 男人天堂欧美| JuliaAnnXXX888| 九九九成人| 99999久久精| 97伊人网| 久久久亚洲| 97在线免费观看视频| 欧美日韩97| 免费国产视频| 欧美成人一级麻豆| 国产精品成久久久久午夜午夜| 中文字幕精品探花视频| 亚洲精品自拍| 国产一级内射无挡观看| 亚洲阿v天堂无码z2018| 福利视频一区二区微拍| 中国国国产一级特黄毛片| 日韩av影片在线观看| 国产一区二区三区精品观看啪| 在线观看高清AV| 不卡一区二区日本视频| 国产树林里野战在线看| 婷婷天堂站| 亚洲 中文 女同| 熟女中出视频| 97AV在线免费观看| 大香蕉日韩欧美| 亚洲三级。日韩三级| 91福利网在线观看| 可以在线观看的黄色网址| 看黄片视频免费| 色九月婷婷| 国产久久久9999| 亚拍在线| 91n处女在线观看| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 超碰色97| 51久久夜色精品国产麻豆| 玖玖玖玖精品国产剧情| 久久久久久久人妻| 台湾大香蕉99热| 久久久三区二区一区| 91欧洲国产成人久久精品网站| 视频一区二区免费在线| 国产精品女久久久久av爽| 丝袜美腿制服人妻二区中文字幕| 伊人久久婷婷| 中国小夫妻勾搭露脸淫荡对白| 一二三四区电影| 日韩一级性爱无码| 日韩中文字幕视频在线观看| 免费视频在线观看啊啊啊啊啊| 综合91网| 欧美日韩中文视频播放| 岛国片在线视频网站| 色噜噜狠狠色综合日日| 欧美三级免费伊人| 蜜臀久久99精品久久久久久成人小说| 诱惑网综合| 色成人Www精品永久观看| aⅴ日韩成人电影av在线免费看av大全| 性色一线| 蜜臀99久久精品| 欧美自拍偷拍综合图片| 欧美日韩91| 日韩精品9区| 亚洲精品97| 国产精品熟女乱伦| 天天舔天天日天天射| 97爱爱| 欧美一级黄片免费播放| 嫩草影院永久在线制服丝袜| 欧美性爱日韩高清| 欧美日韩国产中文精品字幕自在自线, | 久久精品店| 日本99视频| 欧美图片校园春色| 日韩精品中文字幕二区| 97欧美色综合| 欧美日韩国产高清在线一二三区| 少妇人妻无码| 日韩AV无码网站| 麻豆影音天美视频| 婷婷国产精品九区| 九久精品| 69精品在线| 亚洲国产美女久久久久| 熟女丝袜视频| 1769成人国产精品视频| 亚洲精品一区二区三区新线路| 极品肉射| 欧美 亚洲 制服 精品| 97九色| n1038 一二三区| 人人摸.人人色| 男人网站婷婷| 国产美女mm131爽爽爽爽| 免费99精品国产自在在线| 秋霞曰韩R级| 懂色AV网| 奸色色 男人天堂 天天射| 日本影视久久免费| 久久久久一本一区二区青青蜜月| 欧美中文字幕日韩在线| 成人一区二区三区四区| 亚洲国产精品成人无码久久久 | 日韩成人性日韩成人性爱视频在线免费观看 | 极品色电影院| 日本综合久久| 国产传媒日韩| 久久鲁夜| 欧亚性爱视频免费看| 青青青在线高清视频在线一二三四区 | 国产精品动态一区二区三区四四| 精品一区二区成人动漫| 亚洲性天堂| 四季AV综合网址| 国产熟女完整版中字| 久久激情四射婷婷丁香五月天| 丁香婷婷久久 | 午夜久久一区二区无码中出| 国产精品 久久久精品一牛| 人妻素股| 另类综合另类| 精品人妻一区二区视频| 欧美黑人168页欧美黑人167| 欧美亚州手机在线| 国产一区二区三区免费视频在性观看| 国产诱惑| 国产suv精品一区二区四| 噜噜噜在线视频| 自拍六区| 97超碰亚洲| 91丝袜美女国产| 超碰色男人操熟女| 午夜啊啊| 99在线视频播放| 亚州国产精品乱| 在线观看成人性爱免费小视频| 精品少妇一区二区| 亚州精品丝袜-不卡成人免费| 国产精品99久久久www| 成人av性爱电影在线观看| 综合网亚洲1| 久久亚洲天天做| 国产成人无码网站在线视频| 色欲Av人妻精品一区二| 99re6在线视频播放免费精品| wwe 天天干.com| 色99视频| 国模无码一区二区三区在线| 欧美黄页| 中国91AV| 黄色片G G G| 日韩影片中文字幕一区二区三区| 国产女性无套 免费观看| 成年人网站在线免费观看| 日韩电影中文字幕| 欧美A√综合网 | 天美一区在线| 欧美美女在线高潮999| 99热色精品| 天天干人妇| 精品无码不卡视频| 蜜乳成人AV| 久操精品网| 青椒国产97在线熟女| 明星性猛交ⅹxxx乱大交| 国产在线激情| 天天热精品| 91爱欧美| aaa淫乱视频| 男人天堂.AB| 日本精品一区三区| 国产超碰人人操| 18禁超污无遮挡无码免费网| 成人七区| 韩国一级婬片A片无码天美| 99婷婷一区二区| 上特色A在线| 狠日欧美| 欧美美女视频| 中文三一区| 麻豆天美在线| 五月天久久人妻| 97在线视频观看免费| 欧美黑人168页欧美黑人167| 亚洲国产青青| 色天欧美| 久九9精品| 久久久精品久久| 学生妹天天看| 少妇内射视频| 亚洲欧洲激情| 国内一区二区三区| 亚洲色天堂九9| 色天天野狼综合社区| 亚洲中文字幕久久无码精品| 深爱伊人影院| 国产精品乱码久久久| 啊啊啊好想要| 免费看片黄| 天天色黄色影院天天操|