Makefile文件描述了整个工程的编译、链接等规则。包括:工程中哪些源文件需要编译以及如何编译;需要创建哪些库文件以及如何创建这些库文件、如何产生最终的可执行文件。

Makefile相关术语

1.规则:用于说明如何生成一个或多个目标文件。在Makefile中,规则的顺序非常重要,因为Makefile中只应该有一个最终目标,其他目标都是为了生成该目标而产生的中间文件,所以一般第一条规则中的目标将被确认为最终的目标。

规则格式如下:targets : prerequisites

       command

       目标  依赖  命令

例如:main.o : main.c

   gcc -c main.c    说明:命令需要以【TAB】键开始

2.编译程序时,使用make命令,将默认在当前目录下寻找名字为makefile或者Makefile的工程文件,当名字不为两者时,可通过如下命令指定:

make -f filename

3.伪目标:Makefile中把那些没有任何依赖,只有执行动作的目标称为“伪目标”(phony targets)。

伪目标格式如下:.PHONY : clean   说明:.PHONY将clean目标声明为伪目标

        clean :

          rm -f hello main.o

4.变量

变量使用例程:obj = main.o fun1.o fun2.o

       hello : $(obj)

       gcc $(obj) -o hello

5.Makefile默认变量

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

$@ : 代表目标

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

使用例程:hello : main.o fun1.o fun2.o

     gcc $^ -o $@

6.Makefile中“#”字符后的内容为注释;“@”字符为取消回显,不显示Makefile中的命令。

最新文章

  1. Chrome 自动填充的表单是淡黄色的背景,有方法自定义吗
  2. PHP面向对象学习一
  3. Memcached监听多个端口_同一台Windows机器中启动多个Memcached服务
  4. php file_put_contents() 写入回车
  5. SQL的自增列如何重置
  6. c#里面的namespace基础(一)
  7. cocos2dx 各种环境的搭建
  8. HelloSilverlight
  9. 使用SndPlaySound从内存中播放WAV
  10. SQL Server 备份和还原
  11. ARM-LINUX自动采集温湿度传感器数据
  12. mac os x下的程序快速切换快捷键
  13. mysql5.6基于主从复制的mmm高可用架构详解
  14. mysql使用druid监控配置
  15. E - Closest Common Ancestors
  16. Linux内核分析期中总结
  17. 无线模块 RXB12-315m TXB12-315M 应用
  18. Linux vim 编辑命令
  19. windows命令行设置IP与DNS
  20. 【oracle笔记4】存储过程

热门文章

  1. UWP-磁贴初识
  2. 在phpstorm中安装、配置和运行phpunit详细教程
  3. jmeter安装与部署
  4. 搭建Elk集群搭建 ES-filebeat-logstrash-kibana
  5. 参数传递机制之JWT
  6. spring boot 2.x 系列 —— actuator 服务监控与管理
  7. Fabric1.4源码解析:Peer节点加入通道
  8. Redis Ubuntu 安装
  9. 基于Dapper的开源Lambda扩展LnskyDB 2.0已支持多表查询
  10. JDK源码分析系列02---ArrayList和LinkList