前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux】初步使用makefile

【Linux】初步使用makefile

作者头像
叫我龙翔
发布2024-02-17 10:25:54
1130
发布2024-02-17 10:25:54
举报

1 快速使用

  1. 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力
  2. 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作
  3. makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
  4. make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
  5. make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建

1.1 认识makefile

makefile 可以实现自动化构建代码工程 首先 来认识一下make makefile

1.2 使用makefile

我们首先编写一个简单的makefile文件

我们使用make 命令来执行

然后我们就成果得到了可执行程序mytest,并可以成功执行。 再通过使用make clean命令 可以成功删除清理mytest.

2 深入理解

我们先以前两行讲解:

  1. 依赖方法前必须使用TAB进行开头,不能使用4个空格
  2. make 命令会读取makefile的内容,完成编译/清理工作。
  3. 依赖文件列表可以为空
  4. makefile 从上向下扫描 默认生成第一个目标文件(一般把可执行程序放在开头

这里 发现 连续两次make 不能成功,但是加上.PHONY 或 源代码更新就可以。 6. .PHONY : XXX 修饰 XXX表示总是被执行(不断make就可以实现了)

理解 依赖关系 与 依赖方法

通过一个故事理解:

月末了,在上大学的小明没有钱了,所以他拨通了那个男人的电话说:爸! 我是你儿子。 这就是表明依赖关系 而此时在爸爸这边只听到了爸! 我是你儿子 ,爸爸非常不理解,你是我儿子咋了?爸爸并不知道小明的需求。所以只表明依赖关系是不够的。 小明也认识到了这点,他再次打了回去:爸! 我是你儿子。我没钱了,给我打点钱。 此时前一句 是表明依赖关系,后一句表明依赖方法,完整表达了意思。

如何实现源代码修改了才会重新编译

只有源代码的“修改时间” 比 可执行程序 的“修改时间”新 ,才会重新编译。

3 内置符号理解

代码语言:javascript
复制
$@ 表明 目标文件
$^ 表明 依赖文件列表
$< 代表第一个依赖文件

类似C语言的宏定义,make 时会自动替换

这样可以递归实现编译的全过程。层层嵌套

使用变量:

Thanks♪(・ω・)ノ谢谢阅读!!!

下一篇文章见!!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 快速使用
    • 1.1 认识makefile
      • 1.2 使用makefile
      • 2 深入理解
        • 理解 依赖关系 与 依赖方法
          • 如何实现源代码修改了才会重新编译
          • 3 内置符号理解
          • Thanks♪(・ω・)ノ谢谢阅读!!!
          • 下一篇文章见!!!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档