![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Makefile文件编写
文章平均质量分 79
SunkingYang
C++资深工程师,拥有12年C++开发经验。
期间从事Windows客户端及Linux服务端开发。客户端有ActiveX、MFC、QT,医疗虚拟与现实(Ogre、QT、OpenCV等),三维人脸识别。
拥有4年天网视频监控开发经验,包含ocx插件开发、国标解码库:软解码和硬解码开发等(Windows平台),2年雪亮工程国标服务开发经验,包含国标28181级联服务、国标流媒体等(Linux平台)。
展开
-
Makefile文件编写(一)☞什么是Makefile
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。前言我们教程主要是讲的是 Makefile 。很多 Linux(Unix) 做开发的初学者不了解 Makefile 是什么,甚至大部分 Windows 开发工程师对 Makefile 都特别陌生。这个其实很正常,如果你是在 Windows 下作开发的话不需要去考虑这个问题,因为 Windows原创 2021-03-10 16:55:46 · 205 阅读 · 0 评论 -
Makefile文件编写(二)☞基础规则
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。想要书写一个完整的 Makefile文件,需要了解 Makefile 的相关的书写规则。我们已经知道了 Makefile 描述的是文件编译的相关规则,它的规则主要是两个部分组成,分别是依赖的关系和执行的命令,其结构如下所示:targets : prerequisites command原创 2021-03-10 17:24:00 · 195 阅读 · 0 评论 -
Makefile文件编写(三)☞工作流程
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。简单了解一下 Makefile 书写规则之后,再来深入研究一下 Makefile 的是怎样工作的?当我们在执行 make 条命令的时候,make 就会去当前文件下找要执行的编译规则,也就是 Makefile 文件。我们编写 Makefile 的时可以使用的文件的名称 “GNUmakefile” 、原创 2021-03-10 17:42:12 · 217 阅读 · 0 评论 -
Makefile文件编写(四)☞通配符
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。Makefile 是可以使用 shell 命令的,所以 shell 支持的通配符在 Makefile 中也是同样适用的。 shell 中使用的通配符有:"*","?","[…]"。具体看一下这些通配符的表示含义和具体的使用方法。通配符使用说明*匹配0个或者是任意个字符原创 2021-03-10 17:58:17 · 265 阅读 · 0 评论 -
Makefile文件编写(五)☞变量
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。变量对于我们来说是不陌生的,在学习各种编程语言时会经常用到。就拿C语言来说,变量的使用是十分常见的,变量可以用来保存一个值或者是使用变量进行运算操作。Makefile 中的变量也是这样,我们可以利用它来表示某些多处使用而又可能发生变化的内容,不仅可以节省重复修改的工作,还可以避免遗漏。变量的定义原创 2021-03-10 18:17:59 · 420 阅读 · 0 评论 -
Makefile文件编写(六)☞自动变量
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。关于自动化变量可以理解为由 Makefile 自动产生的变量。在模式规则中,规则的目标和依赖的文件名代表了一类的文件。规则的命令是对所有这一类文件的描述。我们在 Makefile 中描述规则时,依赖文件和目标文件是变动的,显然在命令中不能出现具体的文件名称,否则模式规则将失去意义。那么模式规则命原创 2021-03-11 10:26:27 · 294 阅读 · 0 评论 -
Makefile文件编写(七)☞路径搜索
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。为了体验实例的效果的更加明显,我们按照源代码树的布局来放置文件。我们把源代码放置在src目录下,包含的文件文件是:list1.c、list2.c、main.c 文件,我们把头文件包含在 include 的目录下,包含文件 list1.h、list2.h 文件。Makefile 放在这两个目录文件的原创 2021-03-11 10:34:08 · 156 阅读 · 0 评论 -
Makefile文件编写(八)☞隐含规则
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。Makefile 的隐含规则,所谓的隐含规则就是需要我们做出具体的操作,系统自动完成。编写 Makefile 的时候,可以使用隐含规则来简化Makefile 文件编写。实例:test:test.o gcc -o test test.otest.o:test.c我们可以在 Make原创 2021-03-11 10:43:17 · 265 阅读 · 0 评论 -
Makefile文件编写(九)☞条件判断
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。日常使用 Makefile 编译文件时,可能会遇到需要分条件执行的情况,比如在一个工程文件中,可编译的源文件很多,但是它们的类型是不相同的,所以编译文件使用的编译器也是不同的。手动编译去操作文件显然是不可行的(每个文件编译时需要注意的事项很多),所以 make 为我们提供了条件判断来解决这样的问题原创 2021-03-11 11:26:51 · 204 阅读 · 0 评论 -
Makefile文件编写(十)☞伪目标
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。定义所谓的伪目标可以这样来理解,它并不会创建目标文件,只是想去执行这个目标下面的命令。伪目标的存在可以帮助我们找到命令并执行。目的使用伪目标有两点原因:避免我们的 Makefile 中定义的只执行的命令的目标和工作目录下的实际文件出现名字冲突。提高执行 make 时的效率,特别是对于一原创 2021-03-11 14:46:36 · 302 阅读 · 0 评论 -
Makefile文件编写(十一)☞常用字符串处理函数
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。学习使用函数之前,先来看一下函数的语法结构。函数的调用和变量的调用很像。引用变量的格式为$(变量名),函数调用的格式如下:$(<function> <arguments>) 或者是 ${<function> <arguments>}原创 2021-03-11 15:06:34 · 269 阅读 · 0 评论 -
Makefile文件编写(十二)☞常用文件名操作函数
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。我们在编写 Makefile 的时候,很多情况下需要对文件名进行操作。例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等。当遇到这样的问题的时手动修改是不太可能的,因为文件可能会很多,而且 Makefile 中操作文件名可能不止一次。所以 Makefile 给我们提供了相应的函数去实现文件原创 2021-03-11 15:30:21 · 183 阅读 · 0 评论 -
Makefile文件编写(十三)☞其它常用函数
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。foreach函数使用格式:$(foreach <var>,<list>,<text>)函数的功能是:把参数<list>中的单词逐一取出放到参数<var>所指定的变量中,然后再执行<text>所包含的表达式。每一次&l原创 2021-03-11 15:47:45 · 155 阅读 · 0 评论 -
Makefile文件编写(十四)☞命令的编写
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。通过上个章节的描述,我们已经知道了 Makefile 的规则是什么,他是由依赖关系规则和命令组成的。所使用的命令是由 shell 命令行组成,他们是一条一条执行的。多个命令之间要使用分号隔开,Makefile 中的任何命令都要以tab键开始。多个命令行之间可以有空行和注释行,在执行规则时空行会被自原创 2021-03-11 16:13:34 · 183 阅读 · 0 评论 -
Makefile文件编写(十五)☞包含文件
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。这个章节主要讲的是 Makefile 中包含其他的文件。包含其他文件使用的关键字是 “include”,和 C 语言包含头文件的方式相同。当 make 读取到 “include” 关键字的时候,会暂停读取当前的 Makefile,而是去读 “include” 包含的文件,读取结束后再继读取当前的原创 2021-03-11 16:33:40 · 191 阅读 · 0 评论 -
Makefile文件编写(十六)☞嵌套执行make
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。这个章节主要讲解的是在 Makefile 中嵌套执行 make。我们都知道在一个大的工程文件中,不同的文件按照功能被划分到不同的模块中,也就说很多的源文件被放置在了不同的目录下。每个模块可能都会有自己的编译顺序和规则,如果在一个 Makefile 文件中描述所有模块的编译规则,就会很乱,执行时也会原创 2021-03-12 09:31:28 · 195 阅读 · 0 评论 -
Makefile文件编写(十七)☞参数选项
参考:Makefile教程:Makefile文件编写1天入门本系列是在参考前辈们的博文基础上,加入自己的经验及感悟整理出来,在此非常感谢前辈们的付出!注:此系列博文主要用于自我研究学习使用及记录自我开发经历。我们在在执行 make 命令时,有的时候需要加上一下参数选项来保证我们的程序的执行,其实之前已经遇到过 make 在执行命令的时候需要添加上参数选项,比如只打印命令但不执行使用的参数是 “-n” ,还有只执命令不打印命令的参数选项是 “-s”,包含其它文件的路径参数选项是 "-include"等等原创 2021-03-12 09:31:44 · 169 阅读 · 0 评论