makefile中 $@, $^, $<, $?含义

时间:2022-01-19 16:51:42
$@  表示目标文件
$^ 表示所有的依赖文件
$< 表示第一个依赖文件
$? 表示比目标还要新的依赖文件列表

例子

root_num.exe: root_num.o my_root.o
gcc -o root_num.exe root_num.o my_root.o
root_num.o: root_num.c my_root.h
gcc -c root_num.c
my_root.o: my_root.c my_root.h
gcc -c my_root.c

简化后

root_num.exe: root_num.o my_root.o
gcc -o $@ $^
root_num.o: root_num.c my_root.h
gcc -c $<
my_root.o: my_root.c my_root.h
gcc -c $<

经过简化后,我们的Makefile是简单了一点,不过人们有时候还想简单一点。

这里我们学习一个Makefile的缺省规则

.c.o:

  gcc -c $<

这个规则表示所有的 .o文件都是依赖与相应的.c文件的。

root_num.exe: root_num.o my_root.o
gcc -o $@ $^
.c.o:
gcc -c $<

随机推荐

  1. appCan uexLocation 定位功能

    js的引用: <script src="../js/zy_control.js"></script> <script src="../js/ ...

  2. SPI总线

    一.概述. SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术. SPI 总线在物理上是通过接在外围设备微控 ...

  3. Unity3D和OGRE资源管理机制

    转自:http://www.tuicool.com/articles/QbMjUn 游戏中通常有大量资源,如网格.材质.纹理.动画.着色器程序和音乐等,游戏引擎作为做游戏的工具,自然要提供良好的资源管 ...

  4. System&period;DllNotFoundException&colon; Unable to load DLL &&num;39&semi;libgdiplus&&num;39&semi;&colon; The specified module could not be found&period;

    netcore 使用System.Drawing 出现如下错误: Unhandled Exception: System.TypeInitializationException: The type i ...

  5. 010-docker-安装-elasticsearch&colon;5&period;4&period;3

    1.搜索镜像 docker search elasticsearch 2.拉取合适镜像 选择合适tag:https://hub.docker.com/ docker pull elasticsearc ...

  6. Django&lowbar;基于模块的单例模式

    基于模块的单例模式  原理: Python 的独有特性 : 模块的导入只能生效一次. 再重复导入只要基于一套环境都是使用的 最初 的那份资源.  示例: 文档结构: # mysingleton.py ...

  7. angular &dollar;scope&period;&dollar;watch

    在$scope内置的所有函数中,用得最多的可能就是$watch 函数了.当你的数据模型中某一部分发生变化时,$watch函数可以向你发出通知. 你可以监控单个对象的属性,也可以监控需要经过计算的结果( ...

  8. Excel中Application和ApplicationClass的区别

    Application和ApplicationClass的联系和区别Application和ApplicationClass都继承自接口_Application.Application为接口.Appl ...

  9. 微信小程序 - 简述

    1.小程序理解 基于微信的 免安装 MVVM 应用 编码使用 ES 6 一个页面基本组成:wxml wxss js ( html.css.js ) 2. 常见用法 ( 基本就是跟着例子走.. ) 设置 ...

  10. 纯HTML自动刷新页面或重定向(http-equiv属性的refresh)

    refresh 属性值  --  刷新与跳转(重定向)页面 refresh出现在http-equiv属性中,使用content属性表示刷新或跳转的开始时间与跳转的网址 refresh示例一:5秒之后刷 ...