预备知识:

gcc 的3个参数:

1. -o 指定目标文件

gcc sources/main.c -o bin/main

2. -c 编译的时候只生产目标文件不链接

gcc -c sources/main.c -o obj/main.o

3. -I 主要指定头文件的搜索路径

gcc -I headers -c main.c -o main.o

4. -l 指定静态库

gcc -lpthread ...
3个预定义变量介绍:

1.  $@     表示要生成的目标

2.  $^     表示全部的依赖文件

3.  $<     表示第一个依赖文件

bin/st_work : obj/main.o  obj/st_work.o  obj/fun.o

gcc  $^  -o $@  (命令一定要用以Tab开头)

obj/st_work.o : sources/st_work.c

gcc  -I  headers   -c $< -o  $@

obj/main.o : sources/main.c

gcc  -I  headers   -c $< -o  $@

obj/fun.o  : sources/fun.c

gcc  -I  headers   -c $< -o  $@

clean:

rm -f bin/st_work obj/*.o

Makefile编写详解--项目开发相关推荐

  1. Makefile文件详解一(怎么在Windows下使用Makefile文件)

    前言:如果熟悉在Linux开发的话,肯定知道Makefile文件的用处,它给我们带来很多的便利.在Linux系统下并不会像Windows那么多开发工具,在Windows下,只要在开发工具上点击一个按钮 ...

  2. STM32CubeMX GCC工程Makefile内容详解

    STM32CubeMX GCC工程Makefile内容详解 基础介绍 因为项目原因,需要对编译系统进行一些比较复杂的使用,但是我对于编译系统这一块并不是非常精通了解,所以需要进行一下学习.正巧,众所周 ...

  3. python利器的使用-图文详解python开发利器之ulipad的使用实践

    Ulipad是一个国人limodou编写的专业Python编辑器,它基于wxpython开发的GUI(图形化界面).下面这篇文章主要介绍了python开发利器之ulipad的使用实践,文中介绍的非常详 ...

  4. MQTT协议详解及开发教程(四)MQTT协议报文格式

    推荐一款稳定的基于C编写的MQTT Client开源库 cMQTT MQTT协议详解及开发教程(一)MQTT协议概述 MQTT协议详解及开发教程(二)MQTT服务器EMQx搭建 MQTT协议详解及开发 ...

  5. 集成式单片机外部模块驱动编写详解——AD5689为例

    集成式单片机外部模块驱动编写详解--AD5689为例 集成式驱动原理 AD5689基本介绍 AD5689驱动抽象及源码解释 源码 参考资料 具体的代码和例程请参照以下GitHub仓库,记得给我star ...

  6. GprMax 3.1.5 建模的in文件编写详解(2)

    GprMax 3.1.5 建模的in文件编写详解(2) gprMax是一款优秀的基于时域有限差分方法(FDTD)的电磁波数值模拟软件,目前为止,它还没有图形用户界面(GUI),它的建模关键在于in文件 ...

  7. GprMax 3.1.5 建模的in文件编写详解(1)

    GprMax 3.1.5 建模的in文件编写详解(1) gprMax是一款优秀的基于时域有限差分方法(FDTD)的电磁波数值模拟软件,目前为止,它还没有图形用户界面(GUI),它的建模关键在于in文件 ...

  8. 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器...

    [索引页] [×××] 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器 作者:webabcd 介绍 Silverlight 2.0 ...

  9. 一张图详解项目经理PMO应用波士顿矩阵的步骤和流程

    一张图详解项目经理&PMO应用波士顿矩阵的步骤和流程

最新文章

  1. 菜鸟学***——菜鸟的旅程
  2. 点一下按钮调两次接口?浅谈接口设计的幂等性
  3. 过程 oracle 写在哪里,Oracle怎么写存储过程? 在什么地方写以及怎么调用?最好给个Sample 急(2)...
  4. VS与Matlab混合编译 - mexw64 (C++版)
  5. 中国最为著名的古塔,你认识几座?
  6. int默认值为0,Integer默认值为null
  7. LeetCode(121)——买卖股票的最佳时机(JavaScript)
  8. Android学习Matrix对称变换5
  9. 157. PHP 闭标签
  10. html视频播放 bootstrap,基于Bootstrap和jQuery的视频播放器插件
  11. mobile terminal 笔记
  12. C# 字符串转JSON格式
  13. win10永久设置护眼颜色
  14. Visual SourceSafe 使用说明
  15. GIS-测绘学概论(5)
  16. ADPRL - 近似动态规划和强化学习 - Note 1 - Introduction
  17. 移动磁盘显示文件系统损坏的资料寻回方案
  18. EC20(4G模块) AT指令
  19. mshtml与System.Windows.Forms.HtmlElement
  20. 解决Error: ENOENT: no such file or directory, scandir 安装node-sass报错

热门文章

  1. WinCE的I2C驱动程序设计
  2. java异常判断_Java异常退出条件的判断示例代码
  3. java查看日志命令_[Java教程]【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo...
  4. ABP入门系列(19)——使用领域事件
  5. ABP入门系列(12)——如何升级Abp并调试源码
  6. 哈希桶 entry_哈希表代码实现
  7. SparkSQL自定义AVG强类型聚合函数与弱类型聚合函数汇总
  8. doc文件转换html,HTML+CSS入门 如何使用POI将doc文件转换为HTML
  9. 查看linux硬核上的线程,给大家分享一点基础硬核知识哦 Linux的基础指令操作Lin...
  10. mysql文件类型_MyCat教程:实现MySql主从复制