热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

makemakefile

makefile重要的三个概念:目标依赖关系命令一make与makefilemake是一个应用程序1.解析源程序之间的依赖关系2.根据依赖关系自动维护编译工作3.执行宿主操作系统中

makefile重要的三个概念:目标 依赖关系 命令
一 make与makefile
make是一个应用程序
1.解析源程序之间的依赖关系
2.根据依赖关系自动维护编译工作
3.执行宿主操作系统中的各种命令
makefile是一个描述文件
1.定义一系列的规则来指定源文件编译的先后顺序
2.拥有特定的语法规则,支持函数定义和函数调用
3.能够直接集成操作系统的各种命令
两者之间的关系
1.makefile中的描述用于指导make程序如何完成工作,make根据makefile中的规则执行命令,最后完成编译输出
关系可以用下图表示
make--makefile
简单的makefile示例以及打印结果
make--makefile
在这个示例中:all是一个目标,echo "hello dandanxiaohai"是生成目标的命令
echo的命令的用处是将字符串打印到终端上,需要注意的是:命令所在的行必须是以Tab键开头

示例改动
make--makefile
make--makefile
从运行的结果我们可以得出
1.一个Makefile中可以定义多个目标
2.调用make命令时,得告诉它我们希望它构建的目标是什么,即要它干什么。当没有指定的具体的目标时,make将以文件中定义的第一个目标作为这次运行的目标。“第一个”目标,也被称为默认的目标
3.当make得到目标后,先找到构建目标的对应规则,然后运行规则中的命令来达到构建目标的目的。目前的Makefile中的每个规则中都只有一条命令,实际上,一个规则中可以根据需要存在多条命令
在echo前加上@可以去掉上面输出结果的第一行输出结果,使阅读起来更方便


推荐阅读
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • ### 日期:2018年3月20日在使用Makefile进行编译时,遇到错误提示“make (e=2) — 系统无法找到指定文件”。该问题通常是由路径配置不正确或目标文件缺失引起的。建议检查Makefile中的路径设置,并确保所有依赖文件都已正确放置在指定目录中。此外,可以尝试清理缓存并重新生成Makefile,以排除潜在的环境问题。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 对于以压缩包形式发布的软件,其目录中通常包含一个配置脚本 `configure`。该脚本的主要功能是确定编译所需的各项参数,如头文件的位置和链接库的路径,并生成相应的 `Makefile` 以供编译使用。通过运行此脚本,开发者可以确保软件在不同环境下的正确编译与安装。此外,该脚本还能够检测系统依赖项,进一步提高编译过程的可靠性和兼容性。 ... [详细]
  • 在 Debian 11 系统中部署 CMake 的详细步骤与最佳实践
    CMake是一个免费、开源、跨平台的工具系列,旨在构建、测试和打包软件. CMake用于使用简单的平台和独立于编译器的配置文件来控制软件编译过程,并生成可在您选择的编译器环境中使用 ... [详细]
  • PyFasterRCNN配置详解与优化指南
    本文主要讲解Faster-RCNN的配置过程,以及配置过程中遇到问题的解决方案。 1.下载工程gitclone--recursivehttps:github.comr ... [详细]
  • 如何判断电容好坏?
    关注+星标公众号,不错过精彩内容来源 | 电子电路怎样测量小容量电容的好坏?1、检测10pF以下的小电容,因10pF以下的固定电容器容量太小,如果用指针式用万用表进行测量,只能定性 ... [详细]
  • 个人博客https:juejin.cnuser176366088104638和http:blog.wuzhenyu.com.cncmake编译动态库和链接动态库cmake中&#x ... [详细]
  • 本文档提供了首次周测的答案解析,涵盖特殊符号、命令作用、路径说明以及实战练习等内容。 ... [详细]
  • Linux内核中的内存反碎片技术解析
    本文深入探讨了Linux内核中实现的内存反碎片技术,包括其历史发展、关键概念如虚拟可移动区域以及具体的内存碎片整理策略。旨在为开发者提供全面的技术理解。 ... [详细]
  • 本文探讨了如何选择一个合适的序列化版本ID(serialVersionUID),包括使用生成器还是简单的整数,以及在不同情况下应如何处理序列化版本ID。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • 本文详细探讨了在Windows 98环境下安装Apache 1.3.9、JServ、GNUJSP 1.0、JDK 1.2.2及JSDK 2.0后遇到的中文显示问题,并提供了多种有效的解决方案。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
author-avatar
捡耙活哟752
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有