Linux 自动化构建工具Make 和 Makefile 详解在 Linux 开发环境中自动化构建是提高开发效率的关键。Make 工具及其配置文件 Makefile 是广泛使用的构建自动化工具能够高效管理项目编译、测试和部署流程。以下内容将详细介绍 Make 和 Makefile 的核心概念、语法规则及实际应用。Make 工具的基本原理Make 工具通过读取 Makefile 文件确定构建规则。它检查文件的依赖关系和时间戳仅重新编译已修改的文件或其依赖项避免不必要的重复构建。Make 的核心逻辑是目标target、依赖prerequisites和命令commands的三元组结构。target: prerequisites commands例如编译一个 C 程序时Makefile 可能如下hello: hello.c gcc hello.c -o hello运行make hello时若hello.c比hello新或hello不存在则执行gcc命令重新编译。Makefile 的核心语法规则变量定义与使用Makefile 支持变量定义简化重复内容。变量通过$(VAR)引用。CC gcc CFLAGS -Wall -O2 hello: hello.c $(CC) $(CFLAGS) hello.c -o hello隐式规则Make 提供隐式规则自动推导常见操作。例如从.c生成.o的规则内置无需显式写出hello: hello.o $(CC) hello.o -o hello # 隐式规则自动处理 hello.o 的生成通配符与函数wildcard和patsubst函数常用于批量处理文件SRCS $(wildcard *.c) OBJS $(patsubst %.c,%.o,$(SRCS))复杂项目中的 Makefile 实践对于多文件项目Makefile 需清晰管理依赖关系。以下是一个多模块 C 项目的示例CC gcc CFLAGS -Wall -I./include LDFLAGS -lm SRC_DIR src OBJ_DIR obj BIN_DIR bin SRCS $(wildcard $(SRC_DIR)/*.c) OBJS $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS)) TARGET $(BIN_DIR)/app $(TARGET): $(OBJS) $(CC) $(LDFLAGS) $^ -o $ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) -c $ -o $ clean: rm -f $(OBJS) $(TARGET)关键点使用变量管理路径和编译选项。分离源文件、对象文件和二进制文件的目录。$^表示所有依赖$表示第一个依赖$表示目标文件。高级技巧与最佳实践条件判断根据环境变量调整编译行为DEBUG ? 0 ifeq ($(DEBUG),1) CFLAGS -g endif自动依赖生成通过-MMD选项生成.d依赖文件并包含到 MakefileDEPFLAGS -MMD -MP -include $(OBJS:.o.d) $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) $(DEPFLAGS) -c $ -o $伪目标声明不生成实际文件的目标如clean.PHONY: clean clean: rm -rf $(OBJ_DIR)/* $(BIN_DIR)/*实际案例构建一个简单 HTTP 服务器以下是一个基于 POSIX 的 HTTP 服务器的 Makefile 示例CC gcc CFLAGS -Wall -Wextra -pthread SRCS server.c http_parser.c OBJS $(SRCS:.c.o) TARGET httpserver $(TARGET): $(OBJS) $(CC) $(CFLAGS) $^ -o $ %.o: %.c $(CC) $(CFLAGS) -c $ -o $ clean: rm -f $(OBJS) $(TARGET)运行make编译项目make clean清理生成的文件。常见问题与调试方法命令前缀问题Make 默认打印执行的命令。使用前缀隐藏命令输出clean: echo Cleaning...并行构建通过-j选项启用并行构建加速编译make -j4调试 Makefile使用--debug或打印变量值print-%: echo $* $($*) # 运行 make print-CC 显示 CC 的值总结Make 工具通过 Makefile 的灵活配置为 Linux 开发提供了高效的自动化构建方案。从单文件编译到复杂项目管理合理使用变量、隐式规则和函数能显著提升构建效率。结合自动依赖生成和条件判断等高级特性Makefile 可适应多样化的开发需求。 无论未来多么难以预料只要我们坚持努力就能在时间的洪流中看到梦想的逐渐实现。我们的每一天都在诉说着故事无论大小都有其独特的意义值得我们细细品味与回味。世界上没有一条路是平坦的面对艰难险阻时勇敢与坚持是我们最好的铠甲让我们无惧风雨。人生需要梦想作伴让它成为心灵的灯塔指引我们在黑暗中找到方向迎接光明的未来。生活如同一本书每一天都是一页新篇努力书写精彩内容让人生的故事充满感动与启发。zhishi.khibazu.cn/Article/541389.htmlzhishi.lefuxzw.cn/Article/874794.htmlzhishi.xjmqxzi.cn/Article/118679.htmlzhishi.gpqjiki.cn/Article/720587.htmlzhishi.pdesjvd.cn/Article/352001.htmlzhishi.ltqznmp.cn/Article/021827.htmlzhishi.vlmjtbv.cn/Article/326417.htmlzhishi.lfqnaha.cn/Article/901730.htmlzhishi.uqwijvt.cn/Article/300501.htmlzhishi.ammyfjx.cn/Article/123531.htmlzhishi.khibazu.cn/Article/873925.htmlzhishi.lefuxzw.cn/Article/068647.htmlzhishi.xjmqxzi.cn/Article/131946.htmlzhishi.gpqjiki.cn/Article/136055.htmlzhishi.pdesjvd.cn/Article/858305.htmlzhishi.ltqznmp.cn/Article/884107.htmlzhishi.vlmjtbv.cn/Article/500564.htmlzhishi.lfqnaha.cn/Article/784279.htmlzhishi.uqwijvt.cn/Article/208643.htmlzhishi.ammyfjx.cn/Article/101982.htmlzhishi.khibazu.cn/Article/347160.htmlzhishi.lefuxzw.cn/Article/556272.htmlzhishi.xjmqxzi.cn/Article/476097.htmlzhishi.gpqjiki.cn/Article/507289.htmlzhishi.pdesjvd.cn/Article/980416.htmlzhishi.ltqznmp.cn/Article/998617.htmlzhishi.vlmjtbv.cn/Article/457117.htmlzhishi.lfqnaha.cn/Article/461225.htmlzhishi.uqwijvt.cn/Article/252558.htmlzhishi.ammyfjx.cn/Article/445895.htmlzhishi.khibazu.cn/Article/701636.htmlzhishi.lefuxzw.cn/Article/622917.htmlzhishi.xjmqxzi.cn/Article/109952.htmlzhishi.gpqjiki.cn/Article/146230.htmlzhishi.pdesjvd.cn/Article/379740.htmlzhishi.ltqznmp.cn/Article/663191.htmlzhishi.vlmjtbv.cn/Article/731359.htmlzhishi.lfqnaha.cn/Article/119310.htmlzhishi.uqwijvt.cn/Article/221935.htmlzhishi.ammyfjx.cn/Article/089940.htmlzhishi.khibazu.cn/Article/972556.htmlzhishi.lefuxzw.cn/Article/278630.htmlzhishi.xjmqxzi.cn/Article/604372.htmlzhishi.gpqjiki.cn/Article/354475.htmlzhishi.pdesjvd.cn/Article/502632.htmlzhishi.ltqznmp.cn/Article/252126.htmlzhishi.vlmjtbv.cn/Article/808220.htmlzhishi.lfqnaha.cn/Article/289813.htmlzhishi.uqwijvt.cn/Article/181967.htmlzhishi.ammyfjx.cn/Article/683666.htmlzhishi.khibazu.cn/Article/255795.htmlzhishi.lefuxzw.cn/Article/430704.htmlzhishi.xjmqxzi.cn/Article/499522.htmlzhishi.gpqjiki.cn/Article/643430.htmlzhishi.pdesjvd.cn/Article/220613.htmlzhishi.ltqznmp.cn/Article/847318.htmlzhishi.vlmjtbv.cn/Article/287647.htmlzhishi.lfqnaha.cn/Article/378078.htmlzhishi.uqwijvt.cn/Article/886078.htmlzhishi.ammyfjx.cn/Article/274847.htmlzhishi.khibazu.cn/Article/913362.htmlzhishi.lefuxzw.cn/Article/194146.htmlzhishi.xjmqxzi.cn/Article/239365.htmlzhishi.gpqjiki.cn/Article/439672.htmlzhishi.pdesjvd.cn/Article/809896.htmlzhishi.ltqznmp.cn/Article/735400.htmlzhishi.vlmjtbv.cn/Article/900753.htmlzhishi.lfqnaha.cn/Article/980553.htmlzhishi.uqwijvt.cn/Article/971575.htmlzhishi.ammyfjx.cn/Article/459956.htmlzhishi.khibazu.cn/Article/217587.htmlzhishi.lefuxzw.cn/Article/957682.htmlzhishi.xjmqxzi.cn/Article/333032.htmlzhishi.gpqjiki.cn/Article/642816.htmlzhishi.pdesjvd.cn/Article/740781.htmlzhishi.ltqznmp.cn/Article/637855.htmlzhishi.vlmjtbv.cn/Article/585706.htmlzhishi.lfqnaha.cn/Article/066663.htmlzhishi.uqwijvt.cn/Article/138417.htmlzhishi.ammyfjx.cn/Article/679238.htmlzhishi.khibazu.cn/Article/778409.htmlzhishi.lefuxzw.cn/Article/126558.htmlzhishi.xjmqxzi.cn/Article/833901.htmlzhishi.gpqjiki.cn/Article/154568.htmlzhishi.pdesjvd.cn/Article/031676.htmlzhishi.ltqznmp.cn/Article/415837.htmlzhishi.vlmjtbv.cn/Article/612015.htmlzhishi.lfqnaha.cn/Article/985431.htmlzhishi.uqwijvt.cn/Article/295085.htmlzhishi.ammyfjx.cn/Article/421901.htmlzhishi.khibazu.cn/Article/666541.htmlzhishi.lefuxzw.cn/Article/187390.htmlzhishi.xjmqxzi.cn/Article/089582.htmlzhishi.gpqjiki.cn/Article/753000.htmlzhishi.pdesjvd.cn/Article/415218.htmlzhishi.ltqznmp.cn/Article/262330.htmlzhishi.vlmjtbv.cn/Article/494914.htmlzhishi.lfqnaha.cn/Article/602523.htmlzhishi.uqwijvt.cn/Article/086863.htmlzhishi.ammyfjx.cn/Article/517426.htmlzhishi.khibazu.cn/Article/422724.htmlzhishi.lefuxzw.cn/Article/678548.htmlzhishi.xjmqxzi.cn/Article/192263.htmlzhishi.gpqjiki.cn/Article/525504.htmlzhishi.pdesjvd.cn/Article/319112.htmlzhishi.ltqznmp.cn/Article/948204.htmlzhishi.vlmjtbv.cn/Article/005064.htmlzhishi.lfqnaha.cn/Article/701729.htmlzhishi.uqwijvt.cn/Article/679832.htmlzhishi.ammyfjx.cn/Article/582546.htmlzhishi.khibazu.cn/Article/427845.htmlzhishi.lefuxzw.cn/Article/672691.htmlzhishi.xjmqxzi.cn/Article/425611.htmlzhishi.gpqjiki.cn/Article/472086.htmlzhishi.pdesjvd.cn/Article/832820.htmlzhishi.ltqznmp.cn/Article/897241.htmlzhishi.vlmjtbv.cn/Article/263513.htmlzhishi.lfqnaha.cn/Article/789296.htmlzhishi.uqwijvt.cn/Article/848948.htmlzhishi.ammyfjx.cn/Article/843104.htmlzhishi.khibazu.cn/Article/991809.htmlzhishi.lefuxzw.cn/Article/959694.htmlzhishi.xjmqxzi.cn/Article/747502.htmlzhishi.gpqjiki.cn/Article/438907.htmlzhishi.pdesjvd.cn/Article/503091.htmlzhishi.ltqznmp.cn/Article/261791.htmlzhishi.vlmjtbv.cn/Article/587990.htmlzhishi.lfqnaha.cn/Article/280484.htmlzhishi.uqwijvt.cn/Article/327122.htmlzhishi.ammyfjx.cn/Article/265594.htmlzhishi.khibazu.cn/Article/329675.htmlzhishi.lefuxzw.cn/Article/269278.htmlzhishi.xjmqxzi.cn/Article/052316.htmlzhishi.gpqjiki.cn/Article/658504.htmlzhishi.pdesjvd.cn/Article/804004.htmlzhishi.ltqznmp.cn/Article/404557.htmlzhishi.vlmjtbv.cn/Article/562584.htmlzhishi.lfqnaha.cn/Article/149605.htmlzhishi.uqwijvt.cn/Article/188034.htmlzhishi.ammyfjx.cn/Article/506621.htmlzhishi.khibazu.cn/Article/736011.htmlzhishi.lefuxzw.cn/Article/674452.htmlzhishi.xjmqxzi.cn/Article/289760.htmlzhishi.gpqjiki.cn/Article/067592.htmlzhishi.pdesjvd.cn/Article/891937.htmlzhishi.ltqznmp.cn/Article/233070.htmlzhishi.vlmjtbv.cn/Article/797922.htmlzhishi.lfqnaha.cn/Article/774359.htmlzhishi.uqwijvt.cn/Article/879634.htmlzhishi.ammyfjx.cn/Article/070658.htmlzhishi.khibazu.cn/Article/940005.htmlzhishi.lefuxzw.cn/Article/967056.htmlzhishi.xjmqxzi.cn/Article/172332.htmlzhishi.gpqjiki.cn/Article/341260.htmlzhishi.pdesjvd.cn/Article/729028.htmlzhishi.ltqznmp.cn/Article/218303.htmlzhishi.vlmjtbv.cn/Article/287628.htmlzhishi.lfqnaha.cn/Article/840881.htmlzhishi.uqwijvt.cn/Article/523772.htmlzhishi.ammyfjx.cn/Article/681044.htmlzhishi.khibazu.cn/Article/290958.htmlzhishi.lefuxzw.cn/Article/052443.htmlzhishi.xjmqxzi.cn/Article/487990.htmlzhishi.gpqjiki.cn/Article/552484.htmlzhishi.pdesjvd.cn/Article/343773.htmlzhishi.ltqznmp.cn/Article/340031.htmlzhishi.vlmjtbv.cn/Article/600243.htmlzhishi.lfqnaha.cn/Article/935819.htmlzhishi.uqwijvt.cn/Article/850203.htmlzhishi.ammyfjx.cn/Article/167376.htmlzhishi.khibazu.cn/Article/624394.htmlzhishi.lefuxzw.cn/Article/157931.htmlzhishi.xjmqxzi.cn/Article/408634.htmlzhishi.gpqjiki.cn/Article/426286.htmlzhishi.pdesjvd.cn/Article/701130.htmlzhishi.ltqznmp.cn/Article/818395.htmlzhishi.vlmjtbv.cn/Article/742112.htmlzhishi.lfqnaha.cn/Article/806580.htmlzhishi.uqwijvt.cn/Article/935599.htmlzhishi.ammyfjx.cn/Article/072484.htmlzhishi.khibazu.cn/Article/628411.htmlzhishi.lefuxzw.cn/Article/936767.htmlzhishi.xjmqxzi.cn/Article/000950.htmlzhishi.gpqjiki.cn/Article/956634.htmlzhishi.pdesjvd.cn/Article/354746.htmlzhishi.ltqznmp.cn/Article/230995.htmlzhishi.vlmjtbv.cn/Article/399474.htmlzhishi.lfqnaha.cn/Article/337470.htmlzhishi.uqwijvt.cn/Article/447589.htmlzhishi.ammyfjx.cn/Article/063027.htmlzhishi.khibazu.cn/Article/384930.htmlzhishi.lefuxzw.cn/Article/727226.htmlzhishi.xjmqxzi.cn/Article/683317.htmlzhishi.gpqjiki.cn/Article/771865.htmlzhishi.pdesjvd.cn/Article/530987.htmlzhishi.ltqznmp.cn/Article/591372.htmlzhishi.vlmjtbv.cn/Article/654682.htmlzhishi.lfqnaha.cn/Article/089189.htmlzhishi.uqwijvt.cn/Article/763346.htmlzhishi.ammyfjx.cn/Article/399860.htmlzhishi.khibazu.cn/Article/430060.htmlzhishi.lefuxzw.cn/Article/050885.htmlzhishi.xjmqxzi.cn/Article/136018.htmlzhishi.gpqjiki.cn/Article/927526.htmlzhishi.pdesjvd.cn/Article/584637.htmlzhishi.ltqznmp.cn/Article/553374.htmlzhishi.vlmjtbv.cn/Article/769492.htmlzhishi.lfqnaha.cn/Article/663326.htmlzhishi.uqwijvt.cn/Article/755257.htmlzhishi.ammyfjx.cn/Article/093915.htmlzhishi.khibazu.cn/Article/224860.htmlzhishi.lefuxzw.cn/Article/527484.htmlzhishi.xjmqxzi.cn/Article/369974.htmlzhishi.gpqjiki.cn/Article/717695.htmlzhishi.pdesjvd.cn/Article/520961.htmlzhishi.ltqznmp.cn/Article/148262.htmlzhishi.vlmjtbv.cn/Article/789069.htmlzhishi.lfqnaha.cn/Article/336607.htmlzhishi.uqwijvt.cn/Article/434578.htmlzhishi.ammyfjx.cn/Article/550530.htmlzhishi.khibazu.cn/Article/855774.htmlzhishi.lefuxzw.cn/Article/570652.htmlzhishi.xjmqxzi.cn/Article/866168.htmlzhishi.gpqjiki.cn/Article/525033.htmlzhishi.pdesjvd.cn/Article/903014.htmlzhishi.ltqznmp.cn/Article/000078.htmlzhishi.vlmjtbv.cn/Article/137079.htmlzhishi.lfqnaha.cn/Article/801556.htmlzhishi.uqwijvt.cn/Article/954910.htmlzhishi.ammyfjx.cn/Article/357848.htmlzhishi.khibazu.cn/Article/787785.htmlzhishi.lefuxzw.cn/Article/016050.htmlzhishi.xjmqxzi.cn/Article/525009.htmlzhishi.gpqjiki.cn/Article/247300.htmlzhishi.pdesjvd.cn/Article/620060.htmlzhishi.ltqznmp.cn/Article/390683.htmlzhishi.vlmjtbv.cn/Article/995533.htmlzhishi.lfqnaha.cn/Article/210725.htmlzhishi.uqwijvt.cn/Article/569531.htmlzhishi.ammyfjx.cn/Article/880912.htmlzhishi.khibazu.cn/Article/175458.htmlzhishi.lefuxzw.cn/Article/694925.htmlzhishi.xjmqxzi.cn/Article/310604.htmlzhishi.gpqjiki.cn/Article/250987.htmlzhishi.pdesjvd.cn/Article/237786.htmlzhishi.ltqznmp.cn/Article/596729.htmlzhishi.vlmjtbv.cn/Article/054008.htmlzhishi.lfqnaha.cn/Article/736728.htmlzhishi.uqwijvt.cn/Article/650604.htmlzhishi.ammyfjx.cn/Article/077934.htmlzhishi.khibazu.cn/Article/244555.htmlzhishi.lefuxzw.cn/Article/457552.htmlzhishi.xjmqxzi.cn/Article/765000.htmlzhishi.gpqjiki.cn/Article/701069.htmlzhishi.pdesjvd.cn/Article/220348.htmlzhishi.ltqznmp.cn/Article/458856.htmlzhishi.vlmjtbv.cn/Article/789135.htmlzhishi.lfqnaha.cn/Article/985258.htmlzhishi.uqwijvt.cn/Article/201334.htmlzhishi.ammyfjx.cn/Article/206477.htmlzhishi.khibazu.cn/Article/414630.htmlzhishi.lefuxzw.cn/Article/516153.htmlzhishi.xjmqxzi.cn/Article/871223.htmlzhishi.gpqjiki.cn/Article/438577.htmlzhishi.pdesjvd.cn/Article/619940.htmlzhishi.ltqznmp.cn/Article/755433.htmlzhishi.vlmjtbv.cn/Article/914785.htmlzhishi.lfqnaha.cn/Article/014278.htmlzhishi.uqwijvt.cn/Article/825123.htmlzhishi.ammyfjx.cn/Article/277204.htmlzhishi.khibazu.cn/Article/939713.htmlzhishi.lefuxzw.cn/Article/325588.htmlzhishi.xjmqxzi.cn/Article/252815.htmlzhishi.gpqjiki.cn/Article/127648.htmlzhishi.pdesjvd.cn/Article/500521.htmlzhishi.ltqznmp.cn/Article/285733.htmlzhishi.vlmjtbv.cn/Article/777478.htmlzhishi.lfqnaha.cn/Article/250435.htmlzhishi.uqwijvt.cn/Article/251470.htmlzhishi.ammyfjx.cn/Article/571331.htmlzhishi.khibazu.cn/Article/929128.htmlzhishi.lefuxzw.cn/Article/131844.htmlzhishi.xjmqxzi.cn/Article/116442.htmlzhishi.gpqjiki.cn/Article/768305.htmlzhishi.pdesjvd.cn/Article/711404.htmlzhishi.ltqznmp.cn/Article/863165.htmlzhishi.vlmjtbv.cn/Article/835371.htmlzhishi.lfqnaha.cn/Article/580729.htmlzhishi.uqwijvt.cn/Article/983857.htmlzhishi.ammyfjx.cn/Article/012874.htmlzhishi.khibazu.cn/Article/724960.htmlzhishi.lefuxzw.cn/Article/414484.htmlzhishi.xjmqxzi.cn/Article/392928.htmlzhishi.gpqjiki.cn/Article/682287.htmlzhishi.pdesjvd.cn/Article/563920.htmlzhishi.ltqznmp.cn/Article/723381.htmlzhishi.vlmjtbv.cn/Article/409917.htmlzhishi.lfqnaha.cn/Article/644509.htmlzhishi.uqwijvt.cn/Article/203134.htmlzhishi.ammyfjx.cn/Article/912482.htmlzhishi.khibazu.cn/Article/730047.htmlzhishi.lefuxzw.cn/Article/592427.htmlzhishi.xjmqxzi.cn/Article/141970.htmlzhishi.gpqjiki.cn/Article/066678.htmlzhishi.pdesjvd.cn/Article/096274.htmlzhishi.ltqznmp.cn/Article/262010.htmlzhishi.vlmjtbv.cn/Article/253541.htmlzhishi.lfqnaha.cn/Article/596861.htmlzhishi.uqwijvt.cn/Article/242600.htmlzhishi.ammyfjx.cn/Article/101452.htmlzhishi.khibazu.cn/Article/747992.htmlzhishi.lefuxzw.cn/Article/865665.htmlzhishi.xjmqxzi.cn/Article/593541.htmlzhishi.gpqjiki.cn/Article/683603.htmlzhishi.pdesjvd.cn/Article/138163.htmlzhishi.ltqznmp.cn/Article/955369.htmlzhishi.vlmjtbv.cn/Article/264006.htmlzhishi.lfqnaha.cn/Article/185921.htmlzhishi.uqwijvt.cn/Article/047224.htmlzhishi.ammyfjx.cn/Article/317838.htmlzhishi.khibazu.cn/Article/421342.htmlzhishi.lefuxzw.cn/Article/080103.htmlzhishi.xjmqxzi.cn/Article/113048.htmlzhishi.gpqjiki.cn/Article/316349.htmlzhishi.pdesjvd.cn/Article/678144.htmlzhishi.ltqznmp.cn/Article/064406.htmlzhishi.vlmjtbv.cn/Article/375714.htmlzhishi.lfqnaha.cn/Article/406041.htmlzhishi.uqwijvt.cn/Article/371869.htmlzhishi.ammyfjx.cn/Article/761119.htmlzhishi.khibazu.cn/Article/201363.htmlzhishi.lefuxzw.cn/Article/035589.htmlzhishi.xjmqxzi.cn/Article/785321.htmlzhishi.gpqjiki.cn/Article/950922.htmlzhishi.pdesjvd.cn/Article/977491.htmlzhishi.ltqznmp.cn/Article/746501.htmlzhishi.vlmjtbv.cn/Article/201878.htmlzhishi.lfqnaha.cn/Article/021543.htmlzhishi.uqwijvt.cn/Article/751256.htmlzhishi.ammyfjx.cn/Article/312019.htmlzhishi.khibazu.cn/Article/943596.htmlzhishi.lefuxzw.cn/Article/991439.htmlzhishi.xjmqxzi.cn/Article/253114.htmlzhishi.gpqjiki.cn/Article/544320.htmlzhishi.pdesjvd.cn/Article/199379.htmlzhishi.ltqznmp.cn/Article/348018.htmlzhishi.vlmjtbv.cn/Article/308056.htmlzhishi.lfqnaha.cn/Article/868854.htmlzhishi.uqwijvt.cn/Article/600610.htmlzhishi.ammyfjx.cn/Article/530214.htmlzhishi.khibazu.cn/Article/076706.htmlzhishi.lefuxzw.cn/Article/454382.htmlzhishi.xjmqxzi.cn/Article/252352.htmlzhishi.gpqjiki.cn/Article/736243.htmlzhishi.pdesjvd.cn/Article/670080.htmlzhishi.ltqznmp.cn/Article/780116.htmlzhishi.vlmjtbv.cn/Article/301866.htmlzhishi.lfqnaha.cn/Article/289076.htmlzhishi.uqwijvt.cn/Article/268859.htmlzhishi.ammyfjx.cn/Article/632927.htmlzhishi.khibazu.cn/Article/279391.htmlzhishi.lefuxzw.cn/Article/796529.htmlzhishi.xjmqxzi.cn/Article/277844.htmlzhishi.gpqjiki.cn/Article/155131.htmlzhishi.pdesjvd.cn/Article/827511.htmlzhishi.ltqznmp.cn/Article/423805.htmlzhishi.vlmjtbv.cn/Article/540311.htmlzhishi.lfqnaha.cn/Article/639638.htmlzhishi.uqwijvt.cn/Article/998748.htmlzhishi.ammyfjx.cn/Article/281871.htmlzhishi.khibazu.cn/Article/694114.htmlzhishi.lefuxzw.cn/Article/598104.htmlzhishi.xjmqxzi.cn/Article/252817.htmlzhishi.gpqjiki.cn/Article/027492.htmlzhishi.pdesjvd.cn/Article/471823.htmlzhishi.ltqznmp.cn/Article/021692.htmlzhishi.vlmjtbv.cn/Article/042911.htmlzhishi.lfqnaha.cn/Article/617042.htmlzhishi.uqwijvt.cn/Article/487035.htmlzhishi.ammyfjx.cn/Article/145503.htmlzhishi.khibazu.cn/Article/640367.htmlzhishi.lefuxzw.cn/Article/475346.htmlzhishi.xjmqxzi.cn/Article/151777.htmlzhishi.gpqjiki.cn/Article/942278.htmlzhishi.pdesjvd.cn/Article/707728.htmlzhishi.ltqznmp.cn/Article/888718.htmlzhishi.vlmjtbv.cn/Article/811867.htmlzhishi.lfqnaha.cn/Article/473474.htmlzhishi.uqwijvt.cn/Article/773465.htmlzhishi.ammyfjx.cn/Article/505455.htmlzhishi.khibazu.cn/Article/349801.htmlzhishi.lefuxzw.cn/Article/979991.htmlzhishi.xjmqxzi.cn/Article/750423.htmlzhishi.gpqjiki.cn/Article/757300.htmlzhishi.pdesjvd.cn/Article/872494.htmlzhishi.ltqznmp.cn/Article/264611.htmlzhishi.vlmjtbv.cn/Article/662234.htmlzhishi.lfqnaha.cn/Article/164613.htmlzhishi.uqwijvt.cn/Article/946738.htmlzhishi.ammyfjx.cn/Article/606469.html
掌握Makefile:Linux高效构建终极指南
Linux 自动化构建工具Make 和 Makefile 详解在 Linux 开发环境中自动化构建是提高开发效率的关键。Make 工具及其配置文件 Makefile 是广泛使用的构建自动化工具能够高效管理项目编译、测试和部署流程。以下内容将详细介绍 Make 和 Makefile 的核心概念、语法规则及实际应用。Make 工具的基本原理Make 工具通过读取 Makefile 文件确定构建规则。它检查文件的依赖关系和时间戳仅重新编译已修改的文件或其依赖项避免不必要的重复构建。Make 的核心逻辑是目标target、依赖prerequisites和命令commands的三元组结构。target: prerequisites commands例如编译一个 C 程序时Makefile 可能如下hello: hello.c gcc hello.c -o hello运行make hello时若hello.c比hello新或hello不存在则执行gcc命令重新编译。Makefile 的核心语法规则变量定义与使用Makefile 支持变量定义简化重复内容。变量通过$(VAR)引用。CC gcc CFLAGS -Wall -O2 hello: hello.c $(CC) $(CFLAGS) hello.c -o hello隐式规则Make 提供隐式规则自动推导常见操作。例如从.c生成.o的规则内置无需显式写出hello: hello.o $(CC) hello.o -o hello # 隐式规则自动处理 hello.o 的生成通配符与函数wildcard和patsubst函数常用于批量处理文件SRCS $(wildcard *.c) OBJS $(patsubst %.c,%.o,$(SRCS))复杂项目中的 Makefile 实践对于多文件项目Makefile 需清晰管理依赖关系。以下是一个多模块 C 项目的示例CC gcc CFLAGS -Wall -I./include LDFLAGS -lm SRC_DIR src OBJ_DIR obj BIN_DIR bin SRCS $(wildcard $(SRC_DIR)/*.c) OBJS $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS)) TARGET $(BIN_DIR)/app $(TARGET): $(OBJS) $(CC) $(LDFLAGS) $^ -o $ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) -c $ -o $ clean: rm -f $(OBJS) $(TARGET)关键点使用变量管理路径和编译选项。分离源文件、对象文件和二进制文件的目录。$^表示所有依赖$表示第一个依赖$表示目标文件。高级技巧与最佳实践条件判断根据环境变量调整编译行为DEBUG ? 0 ifeq ($(DEBUG),1) CFLAGS -g endif自动依赖生成通过-MMD选项生成.d依赖文件并包含到 MakefileDEPFLAGS -MMD -MP -include $(OBJS:.o.d) $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) $(DEPFLAGS) -c $ -o $伪目标声明不生成实际文件的目标如clean.PHONY: clean clean: rm -rf $(OBJ_DIR)/* $(BIN_DIR)/*实际案例构建一个简单 HTTP 服务器以下是一个基于 POSIX 的 HTTP 服务器的 Makefile 示例CC gcc CFLAGS -Wall -Wextra -pthread SRCS server.c http_parser.c OBJS $(SRCS:.c.o) TARGET httpserver $(TARGET): $(OBJS) $(CC) $(CFLAGS) $^ -o $ %.o: %.c $(CC) $(CFLAGS) -c $ -o $ clean: rm -f $(OBJS) $(TARGET)运行make编译项目make clean清理生成的文件。常见问题与调试方法命令前缀问题Make 默认打印执行的命令。使用前缀隐藏命令输出clean: echo Cleaning...并行构建通过-j选项启用并行构建加速编译make -j4调试 Makefile使用--debug或打印变量值print-%: echo $* $($*) # 运行 make print-CC 显示 CC 的值总结Make 工具通过 Makefile 的灵活配置为 Linux 开发提供了高效的自动化构建方案。从单文件编译到复杂项目管理合理使用变量、隐式规则和函数能显著提升构建效率。结合自动依赖生成和条件判断等高级特性Makefile 可适应多样化的开发需求。 无论未来多么难以预料只要我们坚持努力就能在时间的洪流中看到梦想的逐渐实现。我们的每一天都在诉说着故事无论大小都有其独特的意义值得我们细细品味与回味。世界上没有一条路是平坦的面对艰难险阻时勇敢与坚持是我们最好的铠甲让我们无惧风雨。人生需要梦想作伴让它成为心灵的灯塔指引我们在黑暗中找到方向迎接光明的未来。生活如同一本书每一天都是一页新篇努力书写精彩内容让人生的故事充满感动与启发。zhishi.khibazu.cn/Article/541389.htmlzhishi.lefuxzw.cn/Article/874794.htmlzhishi.xjmqxzi.cn/Article/118679.htmlzhishi.gpqjiki.cn/Article/720587.htmlzhishi.pdesjvd.cn/Article/352001.htmlzhishi.ltqznmp.cn/Article/021827.htmlzhishi.vlmjtbv.cn/Article/326417.htmlzhishi.lfqnaha.cn/Article/901730.htmlzhishi.uqwijvt.cn/Article/300501.htmlzhishi.ammyfjx.cn/Article/123531.htmlzhishi.khibazu.cn/Article/873925.htmlzhishi.lefuxzw.cn/Article/068647.htmlzhishi.xjmqxzi.cn/Article/131946.htmlzhishi.gpqjiki.cn/Article/136055.htmlzhishi.pdesjvd.cn/Article/858305.htmlzhishi.ltqznmp.cn/Article/884107.htmlzhishi.vlmjtbv.cn/Article/500564.htmlzhishi.lfqnaha.cn/Article/784279.htmlzhishi.uqwijvt.cn/Article/208643.htmlzhishi.ammyfjx.cn/Article/101982.htmlzhishi.khibazu.cn/Article/347160.htmlzhishi.lefuxzw.cn/Article/556272.htmlzhishi.xjmqxzi.cn/Article/476097.htmlzhishi.gpqjiki.cn/Article/507289.htmlzhishi.pdesjvd.cn/Article/980416.htmlzhishi.ltqznmp.cn/Article/998617.htmlzhishi.vlmjtbv.cn/Article/457117.htmlzhishi.lfqnaha.cn/Article/461225.htmlzhishi.uqwijvt.cn/Article/252558.htmlzhishi.ammyfjx.cn/Article/445895.htmlzhishi.khibazu.cn/Article/701636.htmlzhishi.lefuxzw.cn/Article/622917.htmlzhishi.xjmqxzi.cn/Article/109952.htmlzhishi.gpqjiki.cn/Article/146230.htmlzhishi.pdesjvd.cn/Article/379740.htmlzhishi.ltqznmp.cn/Article/663191.htmlzhishi.vlmjtbv.cn/Article/731359.htmlzhishi.lfqnaha.cn/Article/119310.htmlzhishi.uqwijvt.cn/Article/221935.htmlzhishi.ammyfjx.cn/Article/089940.htmlzhishi.khibazu.cn/Article/972556.htmlzhishi.lefuxzw.cn/Article/278630.htmlzhishi.xjmqxzi.cn/Article/604372.htmlzhishi.gpqjiki.cn/Article/354475.htmlzhishi.pdesjvd.cn/Article/502632.htmlzhishi.ltqznmp.cn/Article/252126.htmlzhishi.vlmjtbv.cn/Article/808220.htmlzhishi.lfqnaha.cn/Article/289813.htmlzhishi.uqwijvt.cn/Article/181967.htmlzhishi.ammyfjx.cn/Article/683666.htmlzhishi.khibazu.cn/Article/255795.htmlzhishi.lefuxzw.cn/Article/430704.htmlzhishi.xjmqxzi.cn/Article/499522.htmlzhishi.gpqjiki.cn/Article/643430.htmlzhishi.pdesjvd.cn/Article/220613.htmlzhishi.ltqznmp.cn/Article/847318.htmlzhishi.vlmjtbv.cn/Article/287647.htmlzhishi.lfqnaha.cn/Article/378078.htmlzhishi.uqwijvt.cn/Article/886078.htmlzhishi.ammyfjx.cn/Article/274847.htmlzhishi.khibazu.cn/Article/913362.htmlzhishi.lefuxzw.cn/Article/194146.htmlzhishi.xjmqxzi.cn/Article/239365.htmlzhishi.gpqjiki.cn/Article/439672.htmlzhishi.pdesjvd.cn/Article/809896.htmlzhishi.ltqznmp.cn/Article/735400.htmlzhishi.vlmjtbv.cn/Article/900753.htmlzhishi.lfqnaha.cn/Article/980553.htmlzhishi.uqwijvt.cn/Article/971575.htmlzhishi.ammyfjx.cn/Article/459956.htmlzhishi.khibazu.cn/Article/217587.htmlzhishi.lefuxzw.cn/Article/957682.htmlzhishi.xjmqxzi.cn/Article/333032.htmlzhishi.gpqjiki.cn/Article/642816.htmlzhishi.pdesjvd.cn/Article/740781.htmlzhishi.ltqznmp.cn/Article/637855.htmlzhishi.vlmjtbv.cn/Article/585706.htmlzhishi.lfqnaha.cn/Article/066663.htmlzhishi.uqwijvt.cn/Article/138417.htmlzhishi.ammyfjx.cn/Article/679238.htmlzhishi.khibazu.cn/Article/778409.htmlzhishi.lefuxzw.cn/Article/126558.htmlzhishi.xjmqxzi.cn/Article/833901.htmlzhishi.gpqjiki.cn/Article/154568.htmlzhishi.pdesjvd.cn/Article/031676.htmlzhishi.ltqznmp.cn/Article/415837.htmlzhishi.vlmjtbv.cn/Article/612015.htmlzhishi.lfqnaha.cn/Article/985431.htmlzhishi.uqwijvt.cn/Article/295085.htmlzhishi.ammyfjx.cn/Article/421901.htmlzhishi.khibazu.cn/Article/666541.htmlzhishi.lefuxzw.cn/Article/187390.htmlzhishi.xjmqxzi.cn/Article/089582.htmlzhishi.gpqjiki.cn/Article/753000.htmlzhishi.pdesjvd.cn/Article/415218.htmlzhishi.ltqznmp.cn/Article/262330.htmlzhishi.vlmjtbv.cn/Article/494914.htmlzhishi.lfqnaha.cn/Article/602523.htmlzhishi.uqwijvt.cn/Article/086863.htmlzhishi.ammyfjx.cn/Article/517426.htmlzhishi.khibazu.cn/Article/422724.htmlzhishi.lefuxzw.cn/Article/678548.htmlzhishi.xjmqxzi.cn/Article/192263.htmlzhishi.gpqjiki.cn/Article/525504.htmlzhishi.pdesjvd.cn/Article/319112.htmlzhishi.ltqznmp.cn/Article/948204.htmlzhishi.vlmjtbv.cn/Article/005064.htmlzhishi.lfqnaha.cn/Article/701729.htmlzhishi.uqwijvt.cn/Article/679832.htmlzhishi.ammyfjx.cn/Article/582546.htmlzhishi.khibazu.cn/Article/427845.htmlzhishi.lefuxzw.cn/Article/672691.htmlzhishi.xjmqxzi.cn/Article/425611.htmlzhishi.gpqjiki.cn/Article/472086.htmlzhishi.pdesjvd.cn/Article/832820.htmlzhishi.ltqznmp.cn/Article/897241.htmlzhishi.vlmjtbv.cn/Article/263513.htmlzhishi.lfqnaha.cn/Article/789296.htmlzhishi.uqwijvt.cn/Article/848948.htmlzhishi.ammyfjx.cn/Article/843104.htmlzhishi.khibazu.cn/Article/991809.htmlzhishi.lefuxzw.cn/Article/959694.htmlzhishi.xjmqxzi.cn/Article/747502.htmlzhishi.gpqjiki.cn/Article/438907.htmlzhishi.pdesjvd.cn/Article/503091.htmlzhishi.ltqznmp.cn/Article/261791.htmlzhishi.vlmjtbv.cn/Article/587990.htmlzhishi.lfqnaha.cn/Article/280484.htmlzhishi.uqwijvt.cn/Article/327122.htmlzhishi.ammyfjx.cn/Article/265594.htmlzhishi.khibazu.cn/Article/329675.htmlzhishi.lefuxzw.cn/Article/269278.htmlzhishi.xjmqxzi.cn/Article/052316.htmlzhishi.gpqjiki.cn/Article/658504.htmlzhishi.pdesjvd.cn/Article/804004.htmlzhishi.ltqznmp.cn/Article/404557.htmlzhishi.vlmjtbv.cn/Article/562584.htmlzhishi.lfqnaha.cn/Article/149605.htmlzhishi.uqwijvt.cn/Article/188034.htmlzhishi.ammyfjx.cn/Article/506621.htmlzhishi.khibazu.cn/Article/736011.htmlzhishi.lefuxzw.cn/Article/674452.htmlzhishi.xjmqxzi.cn/Article/289760.htmlzhishi.gpqjiki.cn/Article/067592.htmlzhishi.pdesjvd.cn/Article/891937.htmlzhishi.ltqznmp.cn/Article/233070.htmlzhishi.vlmjtbv.cn/Article/797922.htmlzhishi.lfqnaha.cn/Article/774359.htmlzhishi.uqwijvt.cn/Article/879634.htmlzhishi.ammyfjx.cn/Article/070658.htmlzhishi.khibazu.cn/Article/940005.htmlzhishi.lefuxzw.cn/Article/967056.htmlzhishi.xjmqxzi.cn/Article/172332.htmlzhishi.gpqjiki.cn/Article/341260.htmlzhishi.pdesjvd.cn/Article/729028.htmlzhishi.ltqznmp.cn/Article/218303.htmlzhishi.vlmjtbv.cn/Article/287628.htmlzhishi.lfqnaha.cn/Article/840881.htmlzhishi.uqwijvt.cn/Article/523772.htmlzhishi.ammyfjx.cn/Article/681044.htmlzhishi.khibazu.cn/Article/290958.htmlzhishi.lefuxzw.cn/Article/052443.htmlzhishi.xjmqxzi.cn/Article/487990.htmlzhishi.gpqjiki.cn/Article/552484.htmlzhishi.pdesjvd.cn/Article/343773.htmlzhishi.ltqznmp.cn/Article/340031.htmlzhishi.vlmjtbv.cn/Article/600243.htmlzhishi.lfqnaha.cn/Article/935819.htmlzhishi.uqwijvt.cn/Article/850203.htmlzhishi.ammyfjx.cn/Article/167376.htmlzhishi.khibazu.cn/Article/624394.htmlzhishi.lefuxzw.cn/Article/157931.htmlzhishi.xjmqxzi.cn/Article/408634.htmlzhishi.gpqjiki.cn/Article/426286.htmlzhishi.pdesjvd.cn/Article/701130.htmlzhishi.ltqznmp.cn/Article/818395.htmlzhishi.vlmjtbv.cn/Article/742112.htmlzhishi.lfqnaha.cn/Article/806580.htmlzhishi.uqwijvt.cn/Article/935599.htmlzhishi.ammyfjx.cn/Article/072484.htmlzhishi.khibazu.cn/Article/628411.htmlzhishi.lefuxzw.cn/Article/936767.htmlzhishi.xjmqxzi.cn/Article/000950.htmlzhishi.gpqjiki.cn/Article/956634.htmlzhishi.pdesjvd.cn/Article/354746.htmlzhishi.ltqznmp.cn/Article/230995.htmlzhishi.vlmjtbv.cn/Article/399474.htmlzhishi.lfqnaha.cn/Article/337470.htmlzhishi.uqwijvt.cn/Article/447589.htmlzhishi.ammyfjx.cn/Article/063027.htmlzhishi.khibazu.cn/Article/384930.htmlzhishi.lefuxzw.cn/Article/727226.htmlzhishi.xjmqxzi.cn/Article/683317.htmlzhishi.gpqjiki.cn/Article/771865.htmlzhishi.pdesjvd.cn/Article/530987.htmlzhishi.ltqznmp.cn/Article/591372.htmlzhishi.vlmjtbv.cn/Article/654682.htmlzhishi.lfqnaha.cn/Article/089189.htmlzhishi.uqwijvt.cn/Article/763346.htmlzhishi.ammyfjx.cn/Article/399860.htmlzhishi.khibazu.cn/Article/430060.htmlzhishi.lefuxzw.cn/Article/050885.htmlzhishi.xjmqxzi.cn/Article/136018.htmlzhishi.gpqjiki.cn/Article/927526.htmlzhishi.pdesjvd.cn/Article/584637.htmlzhishi.ltqznmp.cn/Article/553374.htmlzhishi.vlmjtbv.cn/Article/769492.htmlzhishi.lfqnaha.cn/Article/663326.htmlzhishi.uqwijvt.cn/Article/755257.htmlzhishi.ammyfjx.cn/Article/093915.htmlzhishi.khibazu.cn/Article/224860.htmlzhishi.lefuxzw.cn/Article/527484.htmlzhishi.xjmqxzi.cn/Article/369974.htmlzhishi.gpqjiki.cn/Article/717695.htmlzhishi.pdesjvd.cn/Article/520961.htmlzhishi.ltqznmp.cn/Article/148262.htmlzhishi.vlmjtbv.cn/Article/789069.htmlzhishi.lfqnaha.cn/Article/336607.htmlzhishi.uqwijvt.cn/Article/434578.htmlzhishi.ammyfjx.cn/Article/550530.htmlzhishi.khibazu.cn/Article/855774.htmlzhishi.lefuxzw.cn/Article/570652.htmlzhishi.xjmqxzi.cn/Article/866168.htmlzhishi.gpqjiki.cn/Article/525033.htmlzhishi.pdesjvd.cn/Article/903014.htmlzhishi.ltqznmp.cn/Article/000078.htmlzhishi.vlmjtbv.cn/Article/137079.htmlzhishi.lfqnaha.cn/Article/801556.htmlzhishi.uqwijvt.cn/Article/954910.htmlzhishi.ammyfjx.cn/Article/357848.htmlzhishi.khibazu.cn/Article/787785.htmlzhishi.lefuxzw.cn/Article/016050.htmlzhishi.xjmqxzi.cn/Article/525009.htmlzhishi.gpqjiki.cn/Article/247300.htmlzhishi.pdesjvd.cn/Article/620060.htmlzhishi.ltqznmp.cn/Article/390683.htmlzhishi.vlmjtbv.cn/Article/995533.htmlzhishi.lfqnaha.cn/Article/210725.htmlzhishi.uqwijvt.cn/Article/569531.htmlzhishi.ammyfjx.cn/Article/880912.htmlzhishi.khibazu.cn/Article/175458.htmlzhishi.lefuxzw.cn/Article/694925.htmlzhishi.xjmqxzi.cn/Article/310604.htmlzhishi.gpqjiki.cn/Article/250987.htmlzhishi.pdesjvd.cn/Article/237786.htmlzhishi.ltqznmp.cn/Article/596729.htmlzhishi.vlmjtbv.cn/Article/054008.htmlzhishi.lfqnaha.cn/Article/736728.htmlzhishi.uqwijvt.cn/Article/650604.htmlzhishi.ammyfjx.cn/Article/077934.htmlzhishi.khibazu.cn/Article/244555.htmlzhishi.lefuxzw.cn/Article/457552.htmlzhishi.xjmqxzi.cn/Article/765000.htmlzhishi.gpqjiki.cn/Article/701069.htmlzhishi.pdesjvd.cn/Article/220348.htmlzhishi.ltqznmp.cn/Article/458856.htmlzhishi.vlmjtbv.cn/Article/789135.htmlzhishi.lfqnaha.cn/Article/985258.htmlzhishi.uqwijvt.cn/Article/201334.htmlzhishi.ammyfjx.cn/Article/206477.htmlzhishi.khibazu.cn/Article/414630.htmlzhishi.lefuxzw.cn/Article/516153.htmlzhishi.xjmqxzi.cn/Article/871223.htmlzhishi.gpqjiki.cn/Article/438577.htmlzhishi.pdesjvd.cn/Article/619940.htmlzhishi.ltqznmp.cn/Article/755433.htmlzhishi.vlmjtbv.cn/Article/914785.htmlzhishi.lfqnaha.cn/Article/014278.htmlzhishi.uqwijvt.cn/Article/825123.htmlzhishi.ammyfjx.cn/Article/277204.htmlzhishi.khibazu.cn/Article/939713.htmlzhishi.lefuxzw.cn/Article/325588.htmlzhishi.xjmqxzi.cn/Article/252815.htmlzhishi.gpqjiki.cn/Article/127648.htmlzhishi.pdesjvd.cn/Article/500521.htmlzhishi.ltqznmp.cn/Article/285733.htmlzhishi.vlmjtbv.cn/Article/777478.htmlzhishi.lfqnaha.cn/Article/250435.htmlzhishi.uqwijvt.cn/Article/251470.htmlzhishi.ammyfjx.cn/Article/571331.htmlzhishi.khibazu.cn/Article/929128.htmlzhishi.lefuxzw.cn/Article/131844.htmlzhishi.xjmqxzi.cn/Article/116442.htmlzhishi.gpqjiki.cn/Article/768305.htmlzhishi.pdesjvd.cn/Article/711404.htmlzhishi.ltqznmp.cn/Article/863165.htmlzhishi.vlmjtbv.cn/Article/835371.htmlzhishi.lfqnaha.cn/Article/580729.htmlzhishi.uqwijvt.cn/Article/983857.htmlzhishi.ammyfjx.cn/Article/012874.htmlzhishi.khibazu.cn/Article/724960.htmlzhishi.lefuxzw.cn/Article/414484.htmlzhishi.xjmqxzi.cn/Article/392928.htmlzhishi.gpqjiki.cn/Article/682287.htmlzhishi.pdesjvd.cn/Article/563920.htmlzhishi.ltqznmp.cn/Article/723381.htmlzhishi.vlmjtbv.cn/Article/409917.htmlzhishi.lfqnaha.cn/Article/644509.htmlzhishi.uqwijvt.cn/Article/203134.htmlzhishi.ammyfjx.cn/Article/912482.htmlzhishi.khibazu.cn/Article/730047.htmlzhishi.lefuxzw.cn/Article/592427.htmlzhishi.xjmqxzi.cn/Article/141970.htmlzhishi.gpqjiki.cn/Article/066678.htmlzhishi.pdesjvd.cn/Article/096274.htmlzhishi.ltqznmp.cn/Article/262010.htmlzhishi.vlmjtbv.cn/Article/253541.htmlzhishi.lfqnaha.cn/Article/596861.htmlzhishi.uqwijvt.cn/Article/242600.htmlzhishi.ammyfjx.cn/Article/101452.htmlzhishi.khibazu.cn/Article/747992.htmlzhishi.lefuxzw.cn/Article/865665.htmlzhishi.xjmqxzi.cn/Article/593541.htmlzhishi.gpqjiki.cn/Article/683603.htmlzhishi.pdesjvd.cn/Article/138163.htmlzhishi.ltqznmp.cn/Article/955369.htmlzhishi.vlmjtbv.cn/Article/264006.htmlzhishi.lfqnaha.cn/Article/185921.htmlzhishi.uqwijvt.cn/Article/047224.htmlzhishi.ammyfjx.cn/Article/317838.htmlzhishi.khibazu.cn/Article/421342.htmlzhishi.lefuxzw.cn/Article/080103.htmlzhishi.xjmqxzi.cn/Article/113048.htmlzhishi.gpqjiki.cn/Article/316349.htmlzhishi.pdesjvd.cn/Article/678144.htmlzhishi.ltqznmp.cn/Article/064406.htmlzhishi.vlmjtbv.cn/Article/375714.htmlzhishi.lfqnaha.cn/Article/406041.htmlzhishi.uqwijvt.cn/Article/371869.htmlzhishi.ammyfjx.cn/Article/761119.htmlzhishi.khibazu.cn/Article/201363.htmlzhishi.lefuxzw.cn/Article/035589.htmlzhishi.xjmqxzi.cn/Article/785321.htmlzhishi.gpqjiki.cn/Article/950922.htmlzhishi.pdesjvd.cn/Article/977491.htmlzhishi.ltqznmp.cn/Article/746501.htmlzhishi.vlmjtbv.cn/Article/201878.htmlzhishi.lfqnaha.cn/Article/021543.htmlzhishi.uqwijvt.cn/Article/751256.htmlzhishi.ammyfjx.cn/Article/312019.htmlzhishi.khibazu.cn/Article/943596.htmlzhishi.lefuxzw.cn/Article/991439.htmlzhishi.xjmqxzi.cn/Article/253114.htmlzhishi.gpqjiki.cn/Article/544320.htmlzhishi.pdesjvd.cn/Article/199379.htmlzhishi.ltqznmp.cn/Article/348018.htmlzhishi.vlmjtbv.cn/Article/308056.htmlzhishi.lfqnaha.cn/Article/868854.htmlzhishi.uqwijvt.cn/Article/600610.htmlzhishi.ammyfjx.cn/Article/530214.htmlzhishi.khibazu.cn/Article/076706.htmlzhishi.lefuxzw.cn/Article/454382.htmlzhishi.xjmqxzi.cn/Article/252352.htmlzhishi.gpqjiki.cn/Article/736243.htmlzhishi.pdesjvd.cn/Article/670080.htmlzhishi.ltqznmp.cn/Article/780116.htmlzhishi.vlmjtbv.cn/Article/301866.htmlzhishi.lfqnaha.cn/Article/289076.htmlzhishi.uqwijvt.cn/Article/268859.htmlzhishi.ammyfjx.cn/Article/632927.htmlzhishi.khibazu.cn/Article/279391.htmlzhishi.lefuxzw.cn/Article/796529.htmlzhishi.xjmqxzi.cn/Article/277844.htmlzhishi.gpqjiki.cn/Article/155131.htmlzhishi.pdesjvd.cn/Article/827511.htmlzhishi.ltqznmp.cn/Article/423805.htmlzhishi.vlmjtbv.cn/Article/540311.htmlzhishi.lfqnaha.cn/Article/639638.htmlzhishi.uqwijvt.cn/Article/998748.htmlzhishi.ammyfjx.cn/Article/281871.htmlzhishi.khibazu.cn/Article/694114.htmlzhishi.lefuxzw.cn/Article/598104.htmlzhishi.xjmqxzi.cn/Article/252817.htmlzhishi.gpqjiki.cn/Article/027492.htmlzhishi.pdesjvd.cn/Article/471823.htmlzhishi.ltqznmp.cn/Article/021692.htmlzhishi.vlmjtbv.cn/Article/042911.htmlzhishi.lfqnaha.cn/Article/617042.htmlzhishi.uqwijvt.cn/Article/487035.htmlzhishi.ammyfjx.cn/Article/145503.htmlzhishi.khibazu.cn/Article/640367.htmlzhishi.lefuxzw.cn/Article/475346.htmlzhishi.xjmqxzi.cn/Article/151777.htmlzhishi.gpqjiki.cn/Article/942278.htmlzhishi.pdesjvd.cn/Article/707728.htmlzhishi.ltqznmp.cn/Article/888718.htmlzhishi.vlmjtbv.cn/Article/811867.htmlzhishi.lfqnaha.cn/Article/473474.htmlzhishi.uqwijvt.cn/Article/773465.htmlzhishi.ammyfjx.cn/Article/505455.htmlzhishi.khibazu.cn/Article/349801.htmlzhishi.lefuxzw.cn/Article/979991.htmlzhishi.xjmqxzi.cn/Article/750423.htmlzhishi.gpqjiki.cn/Article/757300.htmlzhishi.pdesjvd.cn/Article/872494.htmlzhishi.ltqznmp.cn/Article/264611.htmlzhishi.vlmjtbv.cn/Article/662234.htmlzhishi.lfqnaha.cn/Article/164613.htmlzhishi.uqwijvt.cn/Article/946738.htmlzhishi.ammyfjx.cn/Article/606469.html