Makefile 隐含规则

1. C

    <n>.o的目标用来文件会被自动推导为<n>.c, 并且命令为:

    $(CC) -c  $(CPPFLAGS) $(CFLAGS)

 

2. C++

    <n>.o的目标用来文件会被自动推导为<n>.cc或<n>.C, 并且命令为:

    $(CXX) -c  $(CPPFLAGS) $(CFLAGS)

 

所以在使用默认的推导过程是,如果需要修改编译器或是一些FLAG的值,

可以通过修改以上Makefile预定义的几个隐含变量来实现。

 

3. 所有隐含规则如果显示的编写,则都可以替代隐含规则。

 

4. 常用的几个编译方式:

  1)ld,通过默认规则推导%.o

       $(TARGET_LIB): $(OBJECTS)
           $(LD) $(LDFLAGS) -Bstatic -r -o $(TARGET_LIB) $(OBJECTS)

   2)编译单个文件

      smdevp.o: smdevp.cpp
          $(CROSS_CC) -c smdevp.cpp $(CPPFLAGS)

   3)批量编译文件

   SOURCES = test.cpp  ....

    $(OBJECTS): $(SOURCES)
        $(CROSS_CC) -c $< $(CPPFLAGS)

   或

    $(OBJECTS): %.o:%.cpp
        $(CROSS_CC) -c  $< $(CPPFLAGS)

     

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值