一个makefile实例

编译静态库文件

#make file for llc
#create by yongmingsong
#create date 2011/02/21

TARGET:=libsoftllcCom.a

#LIB_DIR:=./lib
OBJS_DIR:=./bin

INCLUDE:=./include
ACT:=./include/actionUtil
MSG:=/root/softllc/src/include

CPP_SRCS := $(wildcard *.cpp actionUtil/*.cpp  common/*.cpp) //要编译的 .cpp 源文件在这里,多个文件用空格分隔

OBJS :=$(CPP_SRCS:%.cpp=%.o)


CPP_DEPS:=$(CPP_SRCS:%.cpp=%.d)

all:$(TARGET)

$(TARGET):$(OBJS)
 @echo 'Building target: $@'
 @echo 'Invoking: GCC Archiver'
 @-mkdir $(OBJS_DIR)
 ar -r "$(TARGET)" $(OBJS)
 @-mv $(TARGET) $(OBJS_DIR)
 @-mv $(CPP_DEPS)  $(OBJS_DIR)
 @-mv $(OBJS) $(OBJS_DIR)
 @echo 'Finished building target: $@'
 @echo ' '

%.o:%.cpp
 @echo 'Building file: $<'
 @echo 'Invoking: GCC C++ Compiler'
 g++  -I"./include" -I"./include/actionUtil" -I"./common"  -I"./actionUtil" -I"/root/softllc/src/include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<"   //这里可以参考eclipse自动编译控制台中内容 $@为目标集     "$(@:%.o=%.d)" 为自动推导依赖文件(.d文件)
 @echo 'Finished building: $<'
 @echo ' '

clean:
 @rm -rf $(OBJS_DIR)   *.o *.d libsoftllcCom.a

.PHONY: all clean

 

 

编译MAIN函数

#make file for llc
#create by yongmingsong
#create date 2011/02/21

TARGET:=softllcMain
#OBJS:=Main.o

all:$(TARGET)
$(TARGET):Main.o
 @echo 'Building target: softllcMain'
 @echo 'Invoking: GCC C++ Linker'
 g++ -L"../softllcCom/bin" -L"../llccom/Debug" -o $(TARGET)  ./Main.o   -lpthread -lsoftllcCom -lllccom
 @echo 'Finished building target: softllcMain'

Main.o:Main.cpp
 @echo 'Building file: Main.cpp'
 @echo 'Invoking: GCC C++ Compiler'
 @g++ -o"Main.o" -I"../softllcCom/include" -I"../softllcCom/include/actionUtil" -I"/root/softllc/src/include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)"  "Main.cpp"
 @echo 'Finished building: /Main.cpp'

clean:
 rm -rf *.o
.PHONY:all clean

 

 

 

最外面的全局makefile

#make file for softllc
#write by yongmingsong
#create date 2011/02/22

variable:="clean"
all:
 @cd softllcCom && $(MAKE)
 @cd softllcMain && $(MAKE)
clean:
 @cd softllcCom && $(MAKE) $(variable)
 @cd softllcMain && $(MAKE) $(variable)
 @rm -rf softllc
.PHONY:all clean

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值