玩转Makefile | 系列综述

简介: 玩转Makefile | 系列综述


1. 前言


Makefile是一个神奇的东西,有了它只需一个make命令就可以让源文件按你的规则编译成你所想要的程序。非常简单,方便。


对于Keil,VS等IDE,一般只需点一下绿色的三角按钮,就可以完成编译。但具体内部是怎么实现编译的?改动文件后如何只编译改动的文件?学完makefile就可以掌握这些东西,从而对系统编程会有更深层次的理解。


Makefile的内容也非常之多,但常用的知识也不是很多。所谓时间花在刀刃上,与其过分追求枝叶,不如先把握好主枝干。当主枝干学得滚瓜烂熟之后再去学那些比较偏的知识也不迟,或者等用到的时候再度娘一下也无妨。


2. 书籍推荐


  1. 陈皓的《跟我一起写makefile》
  2. gnu make manual
  3. managing projects with gnu make, 3rd

这里尤为推荐陈皓的《跟我一起写makefile》,写的很通俗易懂。但就是内容多了一些,看完需要花一定的时间。


3. 系列文章简介


玩转Makefile | 一文入门Makefile

--> 本文主要介绍Makefile的基础知识,可以先掌握这些基础知识再去延伸其它内容。


玩转Makefile | 四步教你从零开始写Makefile

--> 目前有现成工具可以自动写Makefile,但对于一些中小项目来说自动导出的Makefile也非常长,不易于理解与维护。本文从零开始教你一步步编写Makefile,从此妈妈再也不用担心我不会写Makefile了。


玩转Makefile | 企业项目Makefile实例

--> 本文介绍了企业里一个Makefile的常见形式,掌握了这个案例,基本可以达到企业用人标准了。


玩转Makefile | 编译有共用文件的多个程序

--> 本文介绍了Makefile的另一个场景——具有共用文件的多个程序,这种场景在企业项目里也相当常见,需掌握。


玩转Makefile | 一次编译多个目标

--> 本文介绍的这个场景不太适用企业项目,但在自己平时练习的时候可以用得上。

目录
相关文章
|
程序员 C++
makefile学习
俗话说,不会写makefile的程序员不是好的程序员。 看了很多人写的makefile教程,感觉太难懂,还不如韦东山老师视频里讲的好理解。 先记下这几个符号,以后看到就不会忘记这是什么东西了。 先来看一个例子: Person: main.o person.o g++ -o $@ $^ %.o : %.cpp g++ -c -o $@ $< clean: rm -rf *.o Person其中: 1、Person表示要生成的目标文件。
1037 0
|
Shell C++
Makefile学习(三)[第二版]
make常用内嵌函数 1、函数调用    $(function arguments) #$引用的结果就是函数生成的结果   2、Makefile下常用的函数 1)$(wildcard PATTERN) #匹配当前目录下的文件 例如:src=$(wildcard *.
883 0
|
C++
Makefile学习(二)[第二版]
复杂实例 #示例1:在上一个示例的基础上再增加一个可执行文件03test[修改之处已标红] .
883 0
|
编译器 Shell Linux
Makefile学习1
Makefile学习1
|
Web App开发 JavaScript
深入研究Clang(七) Clang Lexer代码阅读笔记之Lexer
作者:史宁宁(snsn1984) 源码位置:clang/lib/Lexer.cpp 源码网络地址:http://clang.llvm.org/doxygen/Lexer_8cpp_source.html Lexer.cpp这个文件,是Clang这个前端的词法分析器的主要文件,它的内容是对Lexer这个类的具体实现,原文件的注释中:“This file implements the Lexer and Token interfaces.” 这么解释这个文件的,但是Token只有两个简单函数的实现,剩下的都是Lexer的实现。
1650 0
|
存储 C语言 C++
深入研究Clang(六) Clang Lexer代码阅读笔记之Preprocesser
作者:史宁宁(snsn1984) clang/include/clang/Lex/Preprocesser.h 这个文件是包含clang::Preprocesser类的定义的头文件。
1288 0
|
自然语言处理
深入研究Clang(五) Clang Lexer代码阅读笔记之Lexer
作者:史宁宁(snsn1984) Clang的Lexer(词法分析器)的源码的主要位置如下: clang/lib/Lex    这里是主要的Lexer的代码; clang/include/clang/Lex   这里是Lexer的头文件代码的位置; 同时,Lexer还使用了clangBasic库,所以要分析Lexer的代码,clangBasic(clang/lib/Basic)的一些代码也会用到。
1276 0