1.自动化变量通配符http://blog.sina.com.cn/s/blog_7c95e5850101b38l.html

2.wildcard 使用http://blog.csdn.net/liangkaiming/article/details/6267357

3.srcs=(wildcard:%。o=%。c)说明

http://os.chinaunix.net/a2008/0312/978/000000978004.shtml

4.$(srcs):%.o:%.c说明==$(patsubst %.c,%.o $(wildcard  *.c))==$($(wildcard  *.c):%.c=%.o)

http://bbs.csdn.net/topics/380082064

http://www.linuxsir.org/bbs/thread205437.html

http://guliqun1983.blog.163.com/blog/static/50111685201171842740793/

5.规则http://www.cnblogs.com/pied/archive/2012/11/02/2751476.html

6.bug报错 http://zhidao.baidu.com/link?url=-TFGEM8kQx9O416zeRqcMkpkMP29aIcMYaNC-gteCQ62ydSfk5qJglEkr3h4-K3YofHfKfsDPsoGQr9qBELazq

http://www.baidu.com/#wd=%2Fusr%2Flib%2Fgcc%2Fi486-linux-gnu%2F4.4.3%2F..%2F..%2F..%2F..%2Flib%2Fcrt1.o%3A%20In%20function%20%60_start%27%3A&rsv_spt=1&rsv_bp=1&ie=utf-8&tn=baiduhome_pg&rsv_sug3=7&rsv_sug4=562&rsv_sug2=0&inputT=891&f=8&rsv_sug=1&bs=%25.c%3A%25.o&rsv_n=2

me:

Target  = auto

Cc = gcc
Cflags =  -Wall -O
Lflags = -lpthread
Include = -I
Ar = ar
Libs =

Srcs = $(wildcard *.c)
#$(wildcard,./sub/*.c) qudiao ','
Incs = $(wildcard *.h)
Objects = $(Srcs:%.c=%.o)

.PHONY:clean release install

all: release
print:
  @echo $(Srcs)
  @echo $(Incs)
  @echo $(Objects)
  @echo "why???"
release:$(Target)

$(Target):$(Objects)
 $(Cc)  $^  -o $@
 @echo $@
 @echo "pkf"
$(Objects):%.o:%.c $(Incs)          // this is not need!!!!!
 $(Cc) -c $< -o $@
 @echo $@
 @echo $<
clean:
 -rm *.o
 -rm $(Target)

exmple:

==============================================================
Target = TestIni
GCC = gcc
G++ = g++

CInc = $(wildcard *.h)
CSrc = $(wildcard *.c)

Cobjects =$(CSrc:%.c=%.o)
#Cobjects =$(patsubst %.c,%.o,$(CSrc))

release:$(Target)

$(Target): $(Cobjects)
$(GCC) -o $@ $^

##################test######################

#CInc += iniparser.h dictionary.h
#CSrc += iniparser.c dictionary.c
#Cobjects += iniparser.o dictionary.o
#CppObejects =
#$(Cobjects):$(Csrc)
# $(GCC) $(CInc) -c $<

#$(Target): iniparser.o dictionary.o
# $(GCC) -o $@ $^

#iniparser.o: iniparser.c
# $(GCC) $(CInc) -c $<
#dictionary.o: dictionary.c
# $(GCC) $(CInc) -c $<

clean:
rm -rf *.o $(Target) *.gch

===================================================

http://blog.csdn.net/liangkaiming/article/details/6267357

wildcard netdir patsubst

make -f makefile release

makefile编写---单个子目录编译自动变量模板ok的更多相关文章

  1. makefile编写---单个子目录编译模板

    经过这次地库项目之后,虽然时间不久,跟团队在一起,虽然队员不一定在技术上有过人之处,但是来自大公司的员工,在工具使用和代码规范方面还是有点可鉴之处,在搭建主控模块是,就得面临makefile编写,因为 ...

  2. Makefile学习之通配符和自动变量

    规则中的通配符 “*” ,“?” ,“ [...]”, " % " , " wildcard " 1.“*”  *.c表示所有后缀为.C的文件: 如果文件中用到 ...

  3. 多文件Makefile编写

    工作过程中,平时不怎么关注Makefile的书写规则,对于遇到的编译错误一般能看懂Makefile的基本规则也能解决.但如果想要编写Makefile文件还是有相当的难度的,更不用说包含多个目录和文件的 ...

  4. makefile编写--引用

    1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之 ...

  5. Makefile之自动变量篇

    自动变量假设您编写一个编译‘.c’文件生成‘.o’文件的规则:您怎样编写命令‘CC’,使它能够操作正确的文件名?您当然不能将文件名直接写进命令中,因为每次使用隐含规则操作的文件名都不一样. 您应该使用 ...

  6. 自动构建Makefile(1)--C/C++编译流程&Makefile规则简介

      前言: 大家在Windows上使用VS构建C/C++程序时,不需要自己编辑略显晦涩的Makefile文件,而对于初学者而言, 他们甚至没意识到它的存在.VS是自动生成Makefile文件, 并构建 ...

  7. makefile 分析 -- 内置变量及自动变量

    makefile 分析1  -p 选项,可以打印出make过程中的数据库, 下面研究一下内置的变量和规则. -n 选项, 只运行,不执行, -d 选项,相当于--debug=a,  b(basic), ...

  8. 2.linux下Makefile编写规范

    转自陈皓 (CSDN) 概述—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 profession ...

  9. makefile编写

    概述 什么是makefile?或许非常多Winodws的程序猿都不知道这个东西,由于那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序猿,makefil ...

随机推荐

  1. canvas如何兼容IE8

    大家都知道canvas是个非常好玩的东西,但是IE9以下的浏览器不支持,有时候业务需求必须用到canvas,且又要求兼容IE8浏览器,那怎么办呢? 1.添加对html5的支持:<!--[if I ...

  2. Docker实践2:安装Docker及weblogic镜像

    安装Docker 以root登录,运行 vi /etc/yum.repos.d/public-yum-ol6.repo,添加如下段落 [ol6_addons]name=Oracle Linux $re ...

  3. iOS:Masonry练习详解

    Masonry练习详解   添加约束的方式: 1.通过使用NSLayoutConstraints添加约束到约束数组中,之前必须设置translatesAutoresizingMaskIntoConst ...

  4. CompileGLShader

    //-----------------------------------------------------------------------------// Purpose: Compiles ...

  5. http://www.oschina.net/code/snippet_12_13918

    http://www.oschina.net/code/snippet_12_13918

  6. C# 关键字 Visual Studio 2012

    C# 关键字 Visual Studio 2012 其他版本 关键字是对编译器具有特殊意义的预定义保留标识符. 它们不能在程序中用作标识符,除非它们有一个 @ 前缀. 例如,@if 是有效的标识符,但 ...

  7. perl学习笔记——目录操作

    在目录书中移动 chdir 操作副改变当前的工作目录.它和shell中cd命令类似: chdir ‘/etc’ or die “cannot chdir to /etc:$1”; 注意:工作目录不能更 ...

  8. wifi破解到局域网渗透

    本文转自 _博客 一,密码破解 wifi破解最主要的还是抓握手包破解(不要给我说某某钥匙的“分享”). wifi认证主要分为四步: 1,无线客户端与ap连接时,首先发送一个认证请求包 2,ap收到请求 ...

  9. Android设置拍照或者上传本地图片

    效果例如以下: 看代码: MainActivity类中: package com.example.ceshidemo; import java.io.ByteArrayOutputStream; im ...

  10. jQuery框架源码解读

    1.jQuery 1.9.1 parseJSON: function( data ) { // Attempt to parse using the native JSON parser first ...