https://wenku.baidu.com/view/b1ec946027d3240c8447ef9a.html

GNU+make中文手册V3.8

<=========From Docs==============>

一般我们可以使用“$(wildcard *.c)”来获取工作目录下的所有的.c 文件列表。复
杂一些用法;可以使用“$(patsubst %.c,%.o,$(wildcard *.c))”,首先使用“wildcard”
函数获取工作目录下的.c 文件列表;之后将列表中所有文件名的后缀.c 替换为.o。这样
我们就可以得到在当前目录可生成的.o 文件列表。因此在一个目录下可以使用如下内
容的 Makefile 来将工作目录下的所有的.c 文件进行编译并最后连接成为一个可执行文
件:
#sample Makefile
objects := $(patsubst %.c,%.o,$(wildcard *.c))
foo : $(objects)
cc -o foo $(objects)
这里我们使用了make的隐含规则来编译.c的源文件。对变量的赋值也用到了一个
特殊的符号(:=)。关于变量定义可参考 6.2 两种变量定义 一节。函数“patsubst”可
参考 8.2 文本处理函数 一节

<--------------My Example ------>

#Settings for Ubuntu
CC=arm-none-eabi-gcc
LINK=arm-none-eabi-ar
TARGET=libSample-linaro.a
CCFLAG=-Dxxx=1 -DHHH  -I ./

#Start Test!

allobjects := $(patsubst %.c,%.o,$(wildcard *.c))
$(TARGET): $(allobjects)
    $(LINK) rcs $(TARGET) $(allobjects)

$(allobjects): %.o:%.c
    $(CC) $(CCFLAG) -o $@ -c $<

clear:  
    rm -rf $(TARGET)
    rm -rf $(allobjects)

#end Test

最新文章

  1. 公测后,微信小程序应用可能被拒原因.
  2. css3制作滚动按钮
  3. ACDream-C - Transformers&#39; Mission(Dijastra最短路径)
  4. C/C++程序基础
  5. Linux批量修改指定目录下的文件或文件夹权限
  6. 设置Session的超时时间
  7. Redis常用数据类型
  8. H5+Boostrap的音乐播放器
  9. tnsping慢的问题解决
  10. Wget 命令详解
  11. SpringMVC中的session用法及细节记录
  12. Webpack 学习总结
  13. target runtime apache v6.0 not defined解决
  14. Java并发容器——CopyOnWriteArrayList
  15. sqlserver使用存储过程发送http请求
  16. LCA离线算法Tarjan详解
  17. 关于SQL while 循环嵌套 外部循环数据无法进入内部循环
  18. PHP中测试in_array、isset、array_key_exists性能
  19. [Sass] Level 4: Extend -- Ex
  20. js解决弹窗问题实现班级跳转DIV示例

热门文章

  1. apache shiro学习笔记
  2. cenos安装erlang
  3. no git binary found in $path(已解决,但是还有疑问)
  4. UVA - 10589 构造最优化函数 DP好题
  5. Randy Pausch&rsquo;s Last Lecture
  6. C++ GUI Qt4编程(11)-5.1hexSpinbox
  7. CentOS-pam认证机制简介
  8. js 中的! 和 !! 的区别
  9. knime 设置 小数点精度
  10. 内置组件 &amp;&amp; vue中强大的缓存机制之keep-alive