1、makefile

首先呢make在执行时,需要一个命名为makefile的文件。

makefile文件描述了整个工程的编译,连接等规则。

其中包括:工程的哪些源文件需要编译以及如何编译;

需要哦创建哪些库文件以及如何创建这些库文件,如何最后产生我们想要的可执行文件。

例程:

hello : main.o func1.o func2.o

gcc main.o func1.o func2.o -o hello

main.o : main.c

gcc main.c -o main.o

func1.o : func1.c

gcc func1.c -o func1.o

func2.o : func2.c

gcc func2.c -o func2.o

.PHONY : clean

clean:

rm -f hello main.o func1.o func2.o

这个例子连伪目标也说明了,其中伪目标会在后面有介绍~~

2、makefile(术语)

规则:

用于说明如何产生一个或者多个目标文件~~

格式:

targets : prerequisites

command

targets:目标;

prerequisites:依赖

command:命令(要有空格,就是按下TAB键)

例如:

main.o : main.c

gcc -c main.c

3、目标

在makefile中,规则的顺序是很重要的~~

因为在一个makefile钟只有一个最终目标,其他的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么~~

一般来说,定义在makefile中的目标可能会有很多,但是:

第一条规则中的目标将被确立为最终目标~~

4、文件名

make命令默认在当前目录下寻找名字为makefile或者Makefile的工程文件,当时当名字不为这两个指定的文件名时,可以用如下方法指定:

make -f 文件名

5、伪目标

makefile中把那些

没有任何依赖(也就是没有prerequisites~~),只有执行动作的目标

成为“伪目标”(phony targets)。

例如:

.PHONY : clean

clean:

rm -f hello main.o func1.o func2.o

就是删除这些文件,但是这个指令没有依赖哦~~

“.PHONY”将“clean”目标声明为伪目标~~

6、变量

最开始的例子可以这样写:

obj=main.o func1.o func2.o func3.o

hello : $(obj)

gcc $(obj) -o hello

对于多文件还是很方便的~~

在makefile中,存在系统默认的自动变化量:

▲ $^:代表所有的依赖文件

▲ $@:代表目标

▲ $<:代表第一个依赖文件

上面的还可以改写成这样:

hello : main.o func1.o func2.o

gcc $^ -o $@

7、杂项

makefile中“#”字符后的内容被视作注释。

在gcc前面加上@可以取消显示回显(就是不显示gcc这句话了~~)

makefile文件管理相关推荐

  1. Linux C基础——” Makefile “ 文件管理大师你拜访过嘛?

    文章目录 Make简介: Makefile基本结构: 1. make是如何工作的 2.makefile文件中的依赖关系理解 3. Makefile书写规则 4. Makefile 基础的使用 3.ma ...

  2. makefile文件管理基本操作

    目录 1. makefile基础规则 2. makefile的一个规则 3. makefile两个函数和clean 4. makefile3个自动变量和模式规则 练习一 练习二 C/C++Linux服 ...

  3. NASM、MASM浅谈

    NASM汇编器和MASM汇编器一样,都可以生成适用于Win32平台的coff文件格式,这种文件格式可以被MS 的link.exe连接器连接成PE文件.通常,我们知道MASM可以通过includelib ...

  4. C语言实现http服务器(Linux)

    这篇文章是我的生产实习报告,在Linux操作系统上实现的一个简单的HTTP服务器,也算是一个小项目.请大家多多指教. 一.实习目的 本次实习紧紧围绕Linux操作系统基础知识展开,主要学习了Linux ...

  5. 嵌入式阶段性学习总结

    转眼间近四个月的学习就结束了,我的这个阶段的生活也画上了句号.回想近四个月的学习.工作和生活上,有过震撼.诧异.怀疑,也有此刻越来越多的探求和欣喜,我感受最多的是自我在不断的成长和走向成熟,一个不断发 ...

  6. makefile学习(转载)

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客: http://blog.csdn.net/haoel/article/details/2886 makefile很重 ...

  7. 详解Makefile 函数的语法与使用

    使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使 ...

  8. Linux makefile 教程

    最近在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出 ...

  9. 跟我一起写 Makefile(整理版)

                      跟我一起写 Makefile                     作者:陈皓           (博客地址:http://blog.csdn.net/haoe ...

最新文章

  1. 怎样打开win7和vista系统的telnet服务
  2. Visual Studio找不到adb.exe错误解决
  3. 都2021年了,输入法还能怎么玩出花?百度智慧输入:toB商业化!
  4. Computing--状态机
  5. iphone尺寸_iPhone折叠机概念图:屏幕双打孔,iPhone折叠机有多优秀!
  6. 如何将VMware ubuntu虚拟机磁盘增长改成自分配(未成功)
  7. MATLAB 牛顿迭代算法
  8. 【文章】你和自己聊过吗?你很重要
  9. KafkaConsumer.poll : Timeout must not be negative
  10. 2018年上半年读者最喜爱的异步新书TOP50
  11. Java Code Examples for org.apache.ibatis.annotations.Insert
  12. c语言图灵机算法,图灵机的时间化简概述(3/4)
  13. WIN7系统更新安装补丁“此更新不适用于你的计算机”解决办法
  14. 神州计算机u盘启动,神舟台式电脑怎么bios设置u盘启动教程
  15. PSP-DDR跳舞机模拟器制谱教程
  16. 使用js脚本实现网页版微信定时发送信息
  17. Problem C: 点在圆内吗?
  18. 0204隐函数及由参数方程所确定的函数的导数相关变化率-导数与微分
  19. 第二十章 Caché 命令大全 QUIT 命令
  20. 高性能 XC6SLX25T-2CSG324C(FPGA)现场可编程门阵列

热门文章

  1. mysql 编译cpu数量_适合MySQL的Xeon 55XX系列CPU编译参数
  2. python RandomTrees特征编码
  3. 解决seaborn绘制热力图使用科学记数法
  4. tomcat 9 无法启动_运维常见问题汇总tomcat篇
  5. c#重载和重写及运用
  6. bzoj 4393 Usaco Fruit Feast
  7. C语言-apache mod(模块开发)-采用apxs开发实战(centos7.2 linux篇)
  8. 实验五 数独游戏界面设置
  9. [erlang] mnesia
  10. Android入门:封装一个HTTP请求的辅助类