色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
欧美性91| 免费岛国一级片| 日韩大香蕉AV影片| 亚洲AV无码黄色强奸| 蜜臀久久99精品久久久久久久久| 久久久性爱视频| 青草伊人久久| 色区久久| 超碰在线91| 在线啊v一区| 国产肏屁眼视频| 天天噜| 人妻精品视频一区二区| 超碰97人人乐| 很很热性爱视频| 一区| 操逼操逼视频操逼| 五月天欧美色图| 国产色图乱伦| 欧美97日韩| 午夜乱轮操逼视频免费看| 亚洲AV小说| 风韵犹存大大大大香蕉| 射丝袜高跟鞋99| 国产精品乱码久久久久| 大香蕉久操| 91丝袜视频在线观看| 九九人人操| 久久人妻熟女一区二区| AV丝袜东京热| 一区二区三区精品黑丝白丝酒店对鸡 | 久久久久国产精品片区无码直播| 精品一区99999| 日韩精品一区二区三区四虎影视| 肏逼福利网站| 98福利在线视频| 小泽玛利亚一二三| 天天日B夜夜干B时时操B| 亚洲图片视频小说| 欧美一级专区免费大片 | 热热色色综合| 99re98| 久久久久幕乱码| 天天干天天舔| 高清国产精品福利网站| 岛国在线国产| 国产伦乱91| 日韩精品区二区三区不卡| 超碰99在线观看| 校园春色综合| 亚洲精品欧美专业| 日韩成人小视频| 黄色成年| 91成人久久| 久久久久成人亚洲国产| 成人无码专区精品视频| 欧美 色 亚洲| 午夜.DJ高清在线观看免费7| 超碰在线成人| 91AV天美在线视频| 成人免费性爱视视| 国产精品久久久鸭无码的功能| 欧美性爱伊人| 情色五月天久久久| 五十路三区在线| 国产毛片久久久久久久| 开心六月色| 视频在线97| 中文字幕人成乱码熟女香港| 爽爽淫人网| 狠狠爱夜夜干| 3d成人精品一区二区| 欧美久久九九| 另类图片综合| 欧洲免费一区二| 凹凸 69堂 在线播放| 国产黄片精品在线| 一直超碰| 老司机深夜影院18未满| 校园春色宗合网| 一级做a爰片性色毛片久久| 夜夜草网站| 天天综合网入口~91| 韩国三级一线观看久| 99re9在线| 欧成人在线| 精品超碰国产| 亚洲在线| 国产熟妇一区二区| 国产AV毛片| 国产白领连续中出在线播放| 国产精品久久久久久久电影渣男| 精品无码一二三四区| Sekablack无码一区| 日韩中文字幕熟妇人妻 | 亚洲色图 图片| 无码最新| 国色综合天| 中文字幕乱码人妻一区二区三区,99精品 | 99热精品在线观看| 成人精品久久久午夜福利| 一区二区三区男女操逼黄色小电影| 在线中文字幕视频| 日韩电影天堂视频二区三区| 久久一区二区三区入口| 视频国产成人精品日本亚洲18| www老逼91| 国语精品内射在线观看| 欧美激情另类一区二区| 久久久久久久人妻丝袜| 内射黑丝袜| 999狠狠综合| 一级片在线观看高清无码| 91模特在线观看| 亚洲熟妇图片| 99∨VTV| 强奸国产精品视频| 成人自拍三级在线观看| 96精品久久久久久久久| 精品人妻少妇| 99操逼| 91色人| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 99热在线播放| 九九九不卡| 欧美日韩天堂| 国产免费一区| 91性感网站| 久久透逼视频| 亚洲男人天堂2017| 少妇天堂网络| 亚洲成人AB| 亚洲天堂久久久久久粉红视频| 久久亚洲AV无码专区国产精品 | 91 手机在线播放 绯色| 婷婷五月天小说| 麻豆天美一区二区| 色99视频| 91九色精品熟女内射| 成人免费毛片| 91人妻最真实刺激绿帽| 大香蕉欧美| 超碰在线在公开超碰在线在公开| 91 亚洲情侣偷拍 久久| 韩日精品福利视频一区不卡在线免 | www.99中文字幕| 三级日韩一区二区三区| 日韩免费中文字幕视频| 天天躁日日躁狠狠躁| 老熟女天天操| 91亚洲综合| 韩国一级做a久久久久| 亚州综合色| 97超视频在线观看| 色香综合天天影视综合 | 熟妇熟女一区二三区| 超碰 97国产熟女| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 亚洲日韩精品在线播放| 午夜天天碰综合视频| 91 丝袜在线| 中文字幕色AV| 欧洲黄色网| 91快色色色色色| 欧美人人AAA| 激情深爱五月天| 久久久久久亚洲精品中文字幕人妻| 欧美 亚洲 综合 制服| 91色爽欧美| 欧美国产操逼| 黄片www视频免费| 日日插夜夜| 人人操人人狠狠操| 国产视频小说| 麻豆成人影音在线| 手机看av网站在线看| 精品福利视频| 国产毛片片精品天天看视频| 自拍鲍鱼一区在线高清观看免费| 久久久久9999妇女| 麻豆国产精品午夜视频| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | av九九| 青青草久久| 欧美不卡在线一区二区| 国产丝袜美女诱惑| 尤物网站91| 久久综合激情| 亚洲欧美不卡线| 美女熟妇色| 精品.99999| 偷拍 亚洲 欧美| 成功精品影院| 91亚洲欧美| 亚洲 图片 综合91| 无码精品久久| 欧美综合网1| 国产人妖视频一区在线观看| 91日产欧美| 不卡av在线中文字幕| 亚州久久9| 亚洲另类小说卡通动漫| 999熟女精品| 97久久超碰| 日韩丝袜人妻AV| 亚洲成人激情小说视频| 欧美日韩婷婷中文| 天天爽天天操| 日本操逼视频不卡直接放| 丰满精品人妻少妇久久字幕| 欧美自拍偷拍免费观看| 国产强奸无码乱伦| 1769国内精品视频| 免费操逼视频下载| 九草九九九| 午夜福利精品| 亚洲一区二区三区欧美日韩| 麻豆色99999| 国产黄色小视频网站| 97色爱| 伊人国产视频| 凌辱美少妇久久aV| 亚洲综合伊人| 97视频620| 青娱乐国产精品| 久久久啊啊啊| 精品欧美日韩在线观看| 人妻天天爽夜夜爽爽| 国产亚洲色婷婷久久99精品91葵花宝典 | 久久久不能久久久久| 天天色黄色影院天天操| 国产亚洲精品一区二区三区| 女生看匆91网站| av一区二区三区四区五区久草臀| 人妻少妇精品一区二区三区| 蜜乳AV.COM| 欧美一级特黄淫片在线观看| 欧美A√综合网 | 国产成人自拍视频视频| 中文字幕成人乱码熟女精品国50| 欧美激情色婷婷花野真衣一区二区| 超碰在线国产| 日欧操屄视频| 台湾成人无码AV| 在线观看亚洲成人精品| 国产精品国产亚洲区艳妇糸列| 日韩天天综合| 亚洲综合嫩| 中文字幕一区二区三区四五区| 双插在线| 丝袜高跟澳门91视频| 亚洲综合射| 天天日天天屌天天操| 欧美韩国你懂得在线| 97国产超湿| 综合亚洲欧美| 久久专区| 亚洲国产奇米影视久久| 麻豆这里只有精品| 婷婷四五区| AND人妻系列| 国产精品视频| 大鸡巴久久| 亚洲天天更新| 国产一区二区三区白丝| 亚洲高清无码在线桃色| 人人爱操| 人妻久久久久久久久久久久久久久 | 国产污视频麻豆传媒一区二区| 炮色五月| 亚洲97网站| 久久免费9| 婷婷色综合欧美日韩| 天天爽夜夜爽夜夜爽精| 国产自偷自拍一区| 2020中文字幕| 亚洲AV不卡在线观看| 久久久偷拍| 家庭乱伦国产精品| 伊人久久大香大香线蕉中文 | 精品国产91av一区二区三区| 欧美很很操视频| 啊啊啊好湿久久| 欧亚日韩综合精品国产| a片在线播放| 综合影视国产无码| 任我爽视频在线观看| 欧美成人色| 亲子敌伦对白在线播放| 丁香五月激情综合| 91超碰在线观看| wwwxxx日本爽| 久久av网| 久久久久久久伊人精品| 99自拍B亚洲 | 人妻在线臀日韩| 午夜美女诱惑电源网| 亚洲自拍天堂| 精国久久一区二区三区98| 亚洲无码国产探花在线观看| 久久99国产综合精品女同| 亚洲97精品| 伊人色综合网电影| 午夜视频久久久| a v网站在线播放| 奇米四色影视777久久久| 五月婷亚洲精品天堂| 日韩精品一区二区日韩| 蜜屁Av| 收看日本人日bb| 少妇天堂网络| 国产专区第一页| 人妻无码一区二区三区久久99| 91精品无码久久久久久久| 欧美亚州手机在线| 国产在线视频二区| 超碰99热中文字幕| 99久久久er直播网址| 天天干天天日天天射黄色| PMv在线观看| 夜夜 中文视频rt| 国产乱人伦AVA麻豆软件.| 国产蜜臀在线| 九九热精品| 中文字幕人妻资源在线| 欧美性五月| 男人的天堂网免费| 久久久久久亚洲中文| 亚洲 中文 欧美 日韩 在线| 婷婷久久网| 秋霞Av理论一级在线| 亚洲国产中文字幕| 91xingse| 亚洲综合婷婷| 成人三一级一片aaa| 日本精品一区二区不卡| 一级黄碟| 9999亚洲电影| 夜夜操天天肏| 国产精品久久久久久夜夜夜| 亚洲啪啪性视频| 秋霞久久亚洲精品成人| 麻豆国产精品午夜视频| 97视频在线播放| 人人妻天天做天天爽| 屁屁影院一区二区三区国产| 日本性交操一区二区不卡系列| 麻豆区久久久久亚| 精品妇操一区二区三区| 狠狠夜色午夜久久综合在线| 四虎 精品 WWW| 九九热免费视频| 偷拍亚洲情色| 国产又粗又长视频| www久| 粉嫩av平台| 日韩图区 偷拍| 日美免费黄片| 亚洲色婷婷综合久久久久中文| 色偷偷综合91久久噜噜| 亚洲 欧美 第一页 | 久久精品久| 亚洲天堂人妻熟妇视频| 天天天乱色综合全| 亚洲精品无码成人久久久99| 东北女人高潮视频| 一区 欧美 日韩 麻豆| 国产精品宅男免费| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 后X久久| 国产精品原创巨作?v网站| 精品一区99999| 本道在线| 亚洲男人的天堂一区二区| 亚洲成?V人片在线观看福利| 操人人| 日韩色香| 精品无码久久久久| 99精品丰满人妻无码| 伊人丝袜美腿高跟在线观看高清 | 五月激情天| 综合啪啪| 亚洲黄网在哪免费看| 欧 美 自 拍 偷 拍| 免费精品无码一级毛片牛牛影视| 97视频播放| 老鸭窝成人免费毛片视频| 国产乱码久久久| 一二三区视频在线观看| 96一区二区三区| 精品无码一区二区三区| 欧美情色亚洲| 久久久96| 亚洲乱色熟女一区| 9丨亚洲一区二区在线| 美女被啪到深处抽搐视频| 人人澡人人干| 91精品人妻一区二区三区蜜臀| 亚洲成人在线高清| 再深点灬舒服灬太大了添视频| 日本一区视频在线观看| www.色五月| 亚洲永久永久永久永久一级一级一级精品| 超硑97精品| 久久国99999| 国产2.3.4区| 精品无码久久久久久久杏吧| 欧美一级做a爰片免费视频| 91九色首页| 人妻人人澡人人爽人人| 日本 情色 1区| 懂色Av| 天天干天天舔| 熟妇人妻精品一区二区视频色欲| 久操视频免费观看| 香蕉久久AⅤ...| 五月婷婷六月激情| 很很很很操| 啊啊啊啊免费视频| 日韩AV熟女乱伦| 夜草欧美| 色噜噜精品一区二区三| 高跟伊人julia ann| 91日韩网站| 涩综合导航| 丁香激情五月| 青青色在线观看| 日本性一区| 黑人猛交| 粉嫩国产精品久久粉嫩| 青青草一本道福利视频| 精品久久久亚洲AV成人网站| 日韩人人精品| 日韩欧美俄罗斯A片| 最新9久久久9免费视频| 人人摸人人摸人人干| 色婷婷蜜臀av| 高潮毛片无遮挡高清免费| 欧美亚洲20p| 操逼天美3区| 囯产精品强| 黄色av网站在线播放| 一级免费啪啪片| 亚洲av资源| 五月天丁香欧洲日韩| 插入逼91| 欧美少妇高潮| 男人干美女| 口爆欧美91| 嫩草一区二区在线观看| AV有码在线| 色女99一级片在线观看| 91黑人无码激情在线| 中文字幕精品码亚洲| 久久精品99| 无码高清少妇久久| 骚鸭AV| 91在线免费观看处女| 乱论91| 中文字幕一区二区三区人妻不卡| 97高清啪啪| 中文自拍欧美影视| 日韩国产不卡在线视频| 免费国产视频| 欧美性夜| 欧美性色综合网| 免费一级视频特黄色大片| 天天操人人操骚逼网站| 开心五月激情网| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 国产中文福利| 超碰在线974| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 亚洲欧洲激情卡通另类文学四射小说网站 | 色情婷婷久久五月天| 久久久精久久久| 黄片aaaaa一区| 日本操逼aaaaa| 搡老熟女免费视频 | 大黄片做爱的大的| 精品无码一区二区三区色欲| 偷拍亚洲视频一区二区三区四区| 天天看片麻豆| 天天看片天天爽| 亚洲天堂久久| 女人的久久久| 天天干天天插| 精品一区二区成人动漫| a在线视频免费观看| a v网站在线播放| 人人操人人大香蕉| 婷婷爱五月| 啪啪91| 国模限制级电影| 欧美视频在线第3页| 欧美精品丝袜久久久中文字幕| 亚洲AV秘 精品久久老牛影视| 成人亚欧免费视频| 伊人五月天| 嗯嗯啊中文字幕| 欧美性暴力猛交XXXX| 色香综合天天影视综合| 91天美免费| 亚洲激情视频| 亚洲成人久久美女| 夜夜一区二区| 91爱做| 中出91视频| www亚洲免费| 欧美性爱伊人| 今日头条成人一区二区三区四虎精品| 成人欧美日超碰| 精品97久久| 熟女人妇一区二区三区| 日本一区二区三区欧美日韩中文字幕| 日本人妻天堂网站在线播放| 亚洲在线| 电影69乱码96| 男人的天堂1024| 国产福利视频精品视频| 婷婷久久综合| 国产精品禁久久久精品| 操逼网站视频漫画国产| 中文字幕55555| 亚洲综合在线第一页| 色五月激情综合网| 美女性91| 久久久一区二区三区四曲免费听| 国产人人干| 日本免费中文字幕在线| 国产欧美成人精品| 日韩精品熟妇| 91中文字幕| 99热成人| 国产精品人妻无码久久久老鸭窝| 男人夜色天堂ss| 久热精品在线| 日韩成人精品中文字幕| 国产精品久久久久久久久久久久| 日产狠狠干| 久久精品区| 亚洲第一在线视频| 天天综合青苹果| 国产精品第一区第一页| 91黑丝美女| 精品中文字幕第一页| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产欧美日韩女同性恋ww喷水精品| 人妻熟女一区二区| 99色在线| www熟女乱伦com| 天天干人妻| 九九热AV| V A在线| 台湾大香蕉99热| 美女国产一区二区久久| 思思热一热婷婷热一热| 青青草无码视频| 五月丁香六月激情综合| 人妻激情另类| 91av熟女人妻| 九九九九AV| 国产精品一级二级在线| 超碰性爱97| 大屁股xxxxx| 2019精品国产无码成人| 97天天摸天天爽| 91精品国产乱码| 色综合一区二区三巨| 精品亚洲国产成人AV制服丝袜| 欧美日韩国产一区二区小黄片大全| 亚洲欧洲无码一区夜| 中文字幕 码精品视频网站| 国内亚洲高清无码| 欧美爱三级日韩久久| 久久精品黄色| 精品丰满熟妇人妻一区| 午夜视频久久久| 久久久91福利姬| 老汉网| 女优免费一区二区永久| 91亚州日韩高清| 久久香蕉国产传媒一区剧情天美| 久久久久久久一级黄色打同平台| 中文字暮97| 欧美精品成人亚洲| 亚州欧美另类| 欧美97se| 久久精品国产亚洲5555| av三级电影在线播放| 人人操,人人液| 尤物网站91| 日韩精品中文字幕人妻| 天天影视综合色| 欧美综色欧| 日韩二区三四区五区六区在线看| 性感美女啊啊啊在线| 97网色| 欧美一级在线观看成人| 亚洲A曰本VA欧美VA视频| 青娱乐国产盛宴视频| 国产高潮AA片免费看| 在线啊啊啊啊| 麻豆区久久久久亚| 久久精品国产Aⅴ| 午夜偷拍久久熟女| 熟妇熟女亚洲天堂网| 亚洲国成人情色好看电影| jiujiujiujingpin| 99人妻碰碰碰久久久久禁片| 91啪啪视频| 性色av一区二区| 日夜精品| 蜜奶av| 欧美亚洲高清不卡| A一区片| 亚洲nv男人的天堂网| 久久久久久大| 97视频一区| h4610国产人妻| 色婷婷蜜臀av| 久久男人的天堂| 国产精品久久久久久 百度| 精品射1999| 亚欧色图在线激情| 精品夜夜澡人妻无码| 激情一区二区| 久久久久久久少妇| av激情亚洲五月天| 黄色AV影视| 天天综合网合集91| 国产一区二区av综合| 国产精品。| 国产成年女人免费视频播放a| 日日夜夜草草草| 亚洲va有码在线天堂| WWW4虎| 一级性爱视频免费在线| 亚洲男人天堂网久久| 夜夜欢天天干| 麻豆国产原创AV色哟哟 | 精品妇女一区二区三区| 91中出视频| 无码人妻一区二区一牛影视| 成人线上超碰| 欧美一区二区成人一卡| 高清在线偷拍自拍视频| 久夜视频| 亚洲射综合网| 强免费黄色网址| 色97干| 青青操视频在线| 成功精品影院| 一区二区三区黄色片a| 少妇高潮九九九九九九九| 激情五月婷婷综合| 琪琪精品免费一区二区三区| 97美日韩视频| 国产精品视频| 免费观看欧美日韩操逼视频| 超碰97伊人| 青青操视频在线| 天天流夜夜操| 性爱av在线免费观看| 麻豆国产97在线| 少妇丝袜在线观看AV| 67194无码不卡| 欧美亚洲尤物久久| 久久青青草原免费视频| 婷婷超| 91亚洲图片| 91 亚欧| 亚洲第一二区另类图| 激情五月天网站| 熟女六十路| 强奸乱伦 亚洲一区| 免费精品无码一级毛片牛牛影视| 亚春色色| 啊啊嗯嗯好爽| 家庭乱伦国产精品| 国产在线观看91精品一区| 69视频入口| 91中文字幕制服丝袜免费视频| 日韩干B| 欧美亚洲首页| 三四中文字幕| 亚洲精品97| 伊人一级免费黄片| 一区二区三区四区五区久久久久久| 99国产精品久久久在线播放| 天天插天天操天天摸天天射天天看| 久久免费精彩视频| 熟女丝袜视频| 大香蕉色网| 六月色婷婷| 欧美九九爱| 亚洲熟女乱综合一区二区三区| 免费视频在线观看啊啊啊啊啊| 强奸a片网| 长长久久免费视频| 蜜桃久久久久久久久久久久| 亚洲日精品| 久久久999| 亚洲成人久久一区二区| 天天日天天插| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 韩国女主播青草在线| 很狠操| 久久久久九九九| 亚洲国产欧美另类自拍| 久久黄色视频一区二区三区| 日本免费亚洲欧美| 97伪v| 亚洲国产精品无码AV久久| 91观看 国产白丝| 男女激情黄色网址| 国产九九久久久精品| 麻豆婷婷成人一二三| 久久成人东京热人妻| 色噜噜国产在线| 青娱乐手机日韩在线视频| 97网色| 91精品久久综合熟女| 宗合情欲网| 午夜成人爽爽爽爽A片李冰冰| 在线播放一级无码视频| 性色高清在线| 日韩欧美日韩| 五月天婷婷基地| 亚洲图片 欧美电影| 日韩不卡毛片Av免费高清| 色www精品视频在线观看| 日韩成人无码| 日韩AC| 少好三P| 久久久婷| 狠狠入| 成人欧美一区二区三区黑人一| 九九操久久国产免费视频| 天天色播亚洲综合网站| 青青草好吊| 久久思思热| 香蕉视频精品亚洲一区二区三区在线播| 国产真实野战在线视频| 中文字幕一二三av| 嗯嗯嗯不要不要免费视频| 久96热在线观看视频| 欧美中字二区| 强奸乱伦 亚洲一区| 欧美天堂亚洲电影院一区在线播放| 伊人丁香五月婷婷| 超碰视97中文| 欧美色吧综合| 人人操人人搞人人草| 97亚洲性爱| 99久久精品无码一区二区| 99国产精品久久久在线播放| 蜜桃在线观看一区二区三区 | 97精品免费| 国产和美国毛片| 亚州色图欧美| 伊人国产av| 亚洲系列第一页| 欧美操逼熟女| 亚洲 日韩 丝袜 熟女 变态| 思思热免费在线视频| 午夜a成v人电影| 欧在线一二区| 日韩av无码网站| 草草草视频在线免费看| 翔田千里AV无码秘 三区| 日本新免费二区三区| 日本黄页视频在线观看| 99精品久久久久久| 色踪合AV| 国产免费小视频| 97超碰超碰| 亚洲精品国产精品成人| 亚洲高清无毛一区二区| 人人 操人人 操人人| site:sinbotex.com| 你懂的在线观看区国产 | 久热伊人99re| 国产精品高潮久久AV| 很很很很操| 九99久久| 夜夜爽夜夜爽| 日本潮催一卡操| 色牛牛AV| 在线啊啊啊啊| 欧美少妇色综合| 久操| 国产一区二区二区按摩精品啪视频| 国产精品美女久久久久久网站| 午夜国产综合视频在线观看| 欧美日韩不卡a片| 秋霞色色影院| 欧美大香蕉专区网| 日本99视频| 激情终合网| 日韩综合97P| 九七人妻在线| 少妇久久久久久| 亚州一区二区成人片免费| 国产精品午夜高潮呻吟久久av| 婷婷色导航| 综合亚洲情色| 亚洲清纯综合| 国产欧美日韩一区二区三区| 中文字幕在线日亚州9| 91neishe| 91男女| 久久天天艹| 青青草中文-久久青草精品一区二区三| av操操不卡| 亚洲AV永久无码精品成人调教| 亚洲欧美激情小说| 欧美性爱免费短视频| 婷婷五月av| 欧美影音在线| 夜夜爽夜夜爽| 国产精品久久久久无码Av网曝门| 91精品国产麻豆国产自产在| 91天美传媒精品| 久久人| 国产 日韩 欧美一区| 久久五月综合| 性欧美精| 无码 黑人一区二区三区| 97超碰jingpin| 91日韩网站| 天天插夜夜操| 丰满翘臀美女影院视频| 少妇贴图| 国产精品国产拍高清AV| 蜜桃久久精品一区二区三区| 亚洲一区日韩精品中文字幕| 婷婷久热| 欧美日韩亚洲五月天婷婷| 91网站18| 亚洲久热| 九九这里只有精品| 国产精品人妻无码久久久老鸭窝| 国产精品交换一区二区| 色悠久久久av| 操www| 爱干爱射网啊啊啊| 蜜桃狠狠色伊人亚洲综合网站| 亚洲一区中文字幕一区| 亚洲国产中文字幕| 综合操逼| 91国产精品熟女| 夜夜爽夜夜操| 亚洲av强奸乱伦| 搡老熟女国产1000部| 国产毛片在线| 91嫩草在线| 激情抓乳插进去啪啪啪日韩| 狠狠干精品一二三四五六2022| 人妻一区二区三区熟女| 大香蕉520| 99热伊人| 96AV精品| 最新日本中文字幕| 欧美少妇第一页| 伊香蕉综合久久久久久久噜噜噜| 97超碰超| 欧洲黄色网| 国产专区路线| 思思热在线视频在线| 啊啊啊好湿久久| 久久国产免费激情视频| 中文字幕人乱码中文字的预防方法 | 亚洲,欧美,综合网| 欧美疯狂做爰xxxx| 91n处女在线观看| 五月天色图影视| 亚洲图片欧美色图| 欧美三级免费伊人| 黄色片一区二区三区四区五区 | 熟女久久久| 亚洲激情在线| 少妇高潮流水av免费| 成熟熟女国产精品一区二区| 人人操人人摸人 | 午夜操逼不卡| 强乱老妇中文字幕| 日韩97视频!在线| 欧美一区二区福利在线| 天欧美在线| 欧美天天插| 93人人操人人| 91色宗合| 大香蕉综合久久| 美女自卫慰黄网站免费| 色老大| 欧美中字二区| 桃花色涩综合影院| 视频国产欧美在线播放| av东京热男人的天堂| 九九综合色| 亚洲 一区二区 自拍| 日韩精品亚洲一二三| 亚洲欧美中日韩| 中文自拍欧美影视| 校园春色综合网| 天天综合网入口~91| 五月婷婷综合在线| a一区二区三区乱码在线| 亚洲丝袜二区在线| 欧美天天综| 欧美人妻一区| 大学生美女口爆| 亚洲情色无码一区二区三区| 97大色网| 日韩av乱伦| 午夜小电影在线插入淫高潮| 欧美性高潮在线| 日日黄色三级网站| 中文字幕日韩综合| 日韩欧美国产高清视频| 一级性爱视频免费观看| 天天92av| AV天黑人| 搞中出视频在线观看| 九九九九九九九精品视频| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 99热| 黑人精品成人一区二区三区| 久久精品国产亚洲AV清纯| 美美91成人国产精品欧美精品久久久久久久 | 久久久久99精品成人片蜜臀| 超碰久草| 九九九精品一区二区无码| 内射日韩大臀美女| 婷婷亚洲综合| 十八禁啪啦拍视频无遮挡| 亚洲欧美日韩免费电影| 私人尤物在线精品不卡| 久久视频,这里只有精品| 97综合国产精品高潮久久| 综合网欧美在线| 亚洲成?V人片在线观看福利| 欧美日韩精品一区二区三区高清| 色屁屁影院www国产| 亚洲春色一区二区三区| 久久精品店| 伦理第一页| 亚洲性高潮| 风韵犹存大大大大香蕉| 亚洲AV免费在线观看| 青青草密桃在线播放| 青青草中文-久久青草精品一区二区三 | 劲爆欧美人妖三区91| 污啪啪啪视频| 五月婷婷激情综合| 污啪啪啪视频| 亚洲少妇色| 超碰人人乐97| 全免费a敌肛交毛片免费| 亚洲一区二区精品福利| 黑人嘿嘿嘿超爽免费视频| 91在线视频观看国产| 操操操日本的逼| 日韩欧美午夜视频在线| 99久久精品国产高潮| 99热这里只有精品99| 91操碰| 大香蕉色十月| 老鸭窝亚洲毛片| 99国产精品在线观看| 狠狠热这里都是精品| 欧美亚洲国内自拍| 国产乱弄免费在线视频。| 神马久久啊啊| 久久人体一区二区| 91精品国| 97精品一区二区视频| 午夜精品五区| 一本道综合色图| 91成人国产综合久久精品蜜月| 免费超碰97久久| 国产欧美另类久久久精品课程| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 日韩午夜啪啪视频| 色呦呦、国产精品| 丰满丝袜少妇AV| 欧美日韩在线小说 | 97欧美日韩精品| 午夜操一操| 水多多映视AV| 青青操狠狠撩| 国产欧美精品日韩区二区麻豆天美| 欧美欲色| 安微少妇操BBB| 91黑丝在线| 亚洲综合中文字幕有码| 91neishe| 色偷综合| 欧亚日韩一区在线| 十八禁的黄污污免费网站| 亚洲蜜桃V妇女| 2025亚洲男人天堂| 怡红院亚洲怡春院av| 亚洲色狠| 国产亚洲精品农村妇女| 99色色| 色五月第四色| 欧美亚洲91| 亚洲图片婷婷五月天| 开心婷婷五月| 金典av| 偷拍新久久| 国产JDAV无码视频在线观看| 亚洲无吗在线视频| 成人五月香网在线| 九月婷婷综合| 热久久无毒不卡| 日韩熟女操逼| 91国产精品在线看| 欧美极品少妇| 久久亚洲国产成人| 国产精品无码在线| 青青草吊丝| 91亚洲欧美激情| 首页中文字幕中文字幕免费| 久久久久久性爱视频| 欧美组图日韩亚洲中文字幕| 亚洲AV无码国产精品久久久久| 蜜桃视频一区二区三区| 国产综合色精品在线观看| 志村玲子视频一区二区| 日韩91网| 91Chinese在线| 超碰 欧美| 久精品无码av一区二免费国产在线观看 | 亚洲天天影视色综合| 日本成人A片网站| 欧美色一二三| 99e久久国产精品| 国产天天骚| 26uuu久久| 大香蕉欧美伊| 久热影视| 久久久久ab| 青娱乐欧美激情一区二区| 国产综合久久久鬼色| 一本色道综合久久欧美| 国产大片精久久久久久| 日本阿v天堂在线观看| 精品人妻二区三区| 搡老熟女免费视频 | 国产午夜视频| 久久精品中文字幕观看| se,,,亚洲欧美| 精品国产91av一区二区三区 | 亚洲成a人v欧美综合天堂下载| 美女啊啊啊啊pc| 亚洲欧美日韩制服另类| 狠狠热这里都是精品| 一类无码操逼视频| 久久是精品| 婷婷丁香五月综合| 狠狠超| 亚洲永久永久永久永久一级一级一级精品| 中国AV美女| Aa东京男人的天堂| 五月婷婷性爱| 久久男人的天堂| 久久久久久中文版| 黄色小视频日本txt| 亚洲深夜福利| 日本三级日本三级三级人妇四虎| 樱花蜜乳av| 中文字幕一二三av| 国产av高清版| 四虎国产精品永久地址入口| 另类图片五月天| 精品一区二区啪啪啪| 可以免费看黄片的视频| 97资源站久久| 亚洲午夜免费狠狠干| 综合亚洲欧美精品日韩?v| 91AV天美在线视频| 久久久久久人妻| 亚洲成aⅴ人片不卡无码| 日产成人久久| 黄色大片一区二区密桃丝袜| 欧美综合娱乐久久| 精品美女少妇一区二区| 欧美天堂日韩三级国产传媒| 亚洲一区二区性爱电影| 亚洲色图欧美色图另类图片| 加勒比伊人综合| 欧美躁死她一区二区| 亚洲成人日韩小说| 亚州性9| 人妻天天爽| 丝袜狠狠草尤物人妻av91| 肉嘟嘟www视频在线观看高清| 大色综合| 蜜桃精品视频一区二区三区| 丝袜夫妻自拍| 超碰人人超在线观看| 少妇熟女1区2区3区| 欧美性高潮| 久久宗合亚洲| 肥臀熟女福利视频一区二区| 强歼乱伦资源网| 人人操人人摸人人骑| 一区二区无码视频| 夜精品久无码| 婷婷四五区| 91精品国产麻豆国产自产在| 强奸乱伦亚洲第一页| 亚洲精品九九九| 超碰社区97| s片在线观看| 91色图片| 一区二区激情国产熟女| 少妇干B| 欧美精品一区二区少妇免费A片 | 人人干人人搞人人摸| 26uuu成人影片| 91色香| 天天欧美| 91热热色| 屁股久久久久久久久| 婷婷另类小说| 国产精品久久发布| 91日韩网站| 亚洲成人在线高清| 人人妻人人玩人人澡人人爽| 免费99精品国产自在在线| 99蜜桃臀亚洲成人在线观看| 夜夜夜久久| 骚货人妻偷情自拍在线视频| 99视频精品| 99久久久久| 日韩AC| 一级特级aaaa毛片免费观看| 亚洲天堂AV在线播放| 欧美呦呦性爱| 先锋影音av先锋一区| 亚洲第一页第二页激情| 亚洲97综| 人人操人人色网| 亚洲色图欧美激情| 好爽免费视频| 国产99999| 女人天堂av在线播放| 大香蕉欧美| dy888午夜老子影视达达兔| 高清孕妇孕交| 中文字幕精品探花视频| 欧美日韩国产成人高清| 亚洲码在线中文在线观看| www.久久制服糖| 福利社区午夜一区二区| 97欧美性爱|