网站制作成品临海市住房与城乡建设规划局网站

张小明 2026/1/15 15:33:56
网站制作成品,临海市住房与城乡建设规划局网站,百度制作网站,关于建设工程资质网站一、Makefile 核心逻辑每个 Makefile 的规则都遵循「目标 - 依赖 - 命令」的核心结构#xff0c;这是 Makefile 的灵魂#xff1a;目标: 依赖命令 # 关键#xff1a;命令前必须是【Tab键】#xff0c;不能用空格#xff01;目标#xff1a;要生成的文件#xff08;如 ap…一、Makefile 核心逻辑每个 Makefile 的规则都遵循「目标 - 依赖 - 命令」的核心结构这是 Makefile 的灵魂目标: 依赖命令 # 关键命令前必须是【Tab键】不能用空格目标要生成的文件如app.exe、main.o、嵌入式固件firmware.elf或要执行的动作如clean依赖生成目标必需的文件如main.c、add.o或其他目标命令从依赖生成目标的具体步骤如编译器命令gcc。二、入门实操从单个文件到多文件1. 第一步单个文件编译最简场景项目结构project/├── main.c # 核心代码含 main() 函数└── Makefile # 构建脚本首字母大小写均可无后缀基础版本直接编译# 目标生成 app.exe依赖main.capp.exe: main.c# 编译命令将 main.c 生成 app.exegcc -o app.exe main.c优化版本使用变量便于维护定义变量后后续更换工具链如嵌入式交叉编译器时仅需修改变量无需改动命令CC gcc # 编译器变量# 目标:依赖app.exe: main.c# 变量引用语法$(变量名)$(CC) -o app.exe main.c在命令行输入make即可生成app.exe可执行文件。2. 第二步多文件编译当项目拆分多个源文件如主程序、驱动、工具函数时用.o中间文件做依赖支持增量编译仅重新编译修改的文件。项目结构project/├── main.c # 主程序调用加法函数├── add.c # 加法函数实现├── add.h # 加法函数声明头文件└── Makefile基础版本CC gcc# 最终目标链接所有 .o 文件生成可执行程序app.exe: main.o add.o$(CC) -o app.exe main.o add.o # 链接命令# 中间目标.c 文件编译为 .o 文件-c只编译不链接main.o: main.c add.h # main.c 依赖 add.h需包含函数声明$(CC) -c main.cadd.o: add.c add.h$(CC) -c add.c# 清理目标删除编译产物.PHONY: clean # 声明为伪目标避免目录有clean文件时命令失效clean:rm -f main.o add.o app.exe # Linux/macOS# del main.o add.o app.exe # Windows 需替换为这行在命令行输入make即可生成app.exe可执行文件输入make clean即可清理编译过程中生成的中间文件增量编译优势仅修改add.c时make自动检测依赖变化仅重新编译add.o再链接生成app.exe无需编译main.o节省时间手动删除某个.o文件如main.omake会自动重新编译该文件。3. 第三步模式规则 自动变量简化代码上面的多文件 Makefile 中每个.o文件的编译命令重复$(CC) -c XXX.c可用「模式规则」和「自动变量」简化新增文件时无需修改规则。优化版本嵌入式推荐CC gcc # 编译器OBJS main.o add.o # 所有中间 .o 文件新增文件仅需添加此处TARGET app.exe # 最终目标文件名统一管理便于修改# 最终目标链接所有依赖的 .o 文件$(TARGET): $(OBJS)$(CC) -o $ $^ # 自动变量$目标名$^所有依赖# 模式规则所有 .c 文件自动生成对应的 .o 文件替代重复规则%.o: %.c$(CC) -c $ -o $ # 自动变量$第一个依赖即 .c 文件$目标即 .o 文件# 清理目标.PHONY: clean # 声明为伪目标避免目录有clean文件时命令失效clean:rm -f $(OBJS) $(TARGET) # Linux/macOS# del $(OBJS) $(TARGET) # Windows 替换核心自动变量必记自动变量含义示例$当前目标文件名编译add.o时$add.o链接app.exe时$app.exe$第一个依赖文件名编译add.o时$add.c$^所有依赖文件名链接app.exe时$^main.o add.o简化优势新增源文件如uart.c时仅需在OBJS中添加uart.o无需新增编译规则代码无冗余降低手写错误概率总结核心规则目标:依赖 Tab命令Tab 是关键变量用途CC编译器、CFLAGS编译选项、OBJS中间文件便于维护简化技巧模式规则%.o: %.c减少重复代码自动变量$/$/$^简化命令嵌入式适配替换CC为交叉编译器添加MCU 架构和Thumb 指令集选项增量编译修改单个文件仅重新编译对应.o大幅节省时间。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

付费网站 源码 下载链接行业网站维护

Kotaemon 与 Tekton 的 CI/CD 深度集成:从实验到生产的工程化跃迁 在 AI 应用加速落地的今天,一个核心问题日益凸显:我们如何将大模型智能体从“能跑通”的原型,变成“可交付、可运维、可审计”的生产系统?尤其是在企业…

张小明 2026/1/2 21:06:57 网站建设

深圳专业建站公司技术好vps网站搬家

OpenCore Legacy Patcher终极指南:让老款Mac焕发新生的完整教程 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 想要让您的2007年及以后的老款Mac设备运行最新…

张小明 2026/1/8 21:46:06 网站建设

wordpress无法创建目录下seo个人博客

ManiSkill机器人仿真环境:5分钟快速上手GPU并行仿真 【免费下载链接】ManiSkill 项目地址: https://gitcode.com/GitHub_Trending/ma/ManiSkill ManiSkill是一个基于SAPIEN构建的高性能机器人仿真环境,专为机器人操作任务设计。它支持GPU并行仿真…

张小明 2026/1/2 20:10:21 网站建设

网站做担保交易平台什么是网络营销最重要的工具

Botty实战指南:3步掌握D2R自动化核心技巧 【免费下载链接】botty D2R Pixel Bot 项目地址: https://gitcode.com/gh_mirrors/bo/botty 在暗黑破坏神2重制版中,手动重复刷怪路线不仅耗时费力,还容易因疲劳导致操作失误。经过多轮测试&a…

张小明 2026/1/9 12:32:13 网站建设

安徽专业网站建设大全推荐东莞百度快速优化排名

目录 真相一:这不是一次普通升级,而是一场业务架构的革命 真相二:拖延的成本,可能远超迁移的投入 真相三:成功的迁移,始于业务转型而非技术切换 从真相到行动:迈出战略转型的第一步 工博科…

张小明 2026/1/8 19:07:18 网站建设

安徽省工程建设信用平台网站广告策划活动公司

EmotiVoice语音多样性控制:同一文本生成多种表达方式 在虚拟偶像直播中,一句“大家好呀~今天有超多惊喜!”可以是元气满满的问候,也可以是略带撒娇的轻语,甚至能瞬间切换成傲娇吐槽。这种自然的情绪流转不再是配音演员…

张小明 2026/1/3 14:16:37 网站建设