zoukankan      html  css  js  c++  java
  • 第十九篇 路径搜索的综合示例

     项目类型分析:

    这是一种扁平的代码管理方式。makefile直接放到项目文件夹下面。

     示例工程:

    源码的目录如下:

    最终的makefile如下:

     1 .PHONY : all clean
     2 
     3 
     4 DIR_BUILD := build
     5 DIR_SRC := src
     6 DIR_INC := inc
     7 
     8 TYPE_INC := .h
     9 TYPE_SRC := .c
    10 TYPE_OBJ := .o
    11 
    12 CC := gcc
    13 LFLAGS :=
    14 CFLAGS := -I $(DIR_INC)
    15 ifeq ($(DEBUG),true)
    16 CFLAGS += -g
    17 endif
    18 
    19 MKDIR := mkdir
    20 RM := rm -fr
    21 
    22 APP := $(DIR_BUILD)/app.out
    23 HDRS := $(wildcard $(DIR_INC)/*$(TYPE_INC))
    24 HDRS := $(notdir $(HDRS))
    25 OBJS := $(wildcard $(DIR_SRC)/*$(TYPE_SRC))
    26 OBJS := $(OBJS:$(TYPE_SRC)=$(TYPE_OBJ))
    27 OBJS := $(patsubst $(DIR_SRC)/%, $(DIR_BUILD)/%, $(OBJS))
    28 
    29 vpath %$(TYPE_INC) $(DIR_INC)
    30 vpath %$(TYPE_SRC) $(DIR_SRC)
    31 
    32 all : $(DIR_BUILD) $(APP)
    33     @echo "Target File ==> $(APP)"
    34     
    35 $(DIR_BUILD) :
    36     $(MKDIR) $@
    37     
    38 $(APP) : $(OBJS)
    39     $(CC) $(LFLAGS) -o $@ $^
    40     
    41 $(DIR_BUILD)/%$(TYPE_OBJ) : %$(TYPE_SRC) $(HDRS)
    42     $(CC) $(CFLAGS) -o $@ -c $<
    43     
    44 clean :
    45     $(RM) $(DIR_BUILD)
    46     
    47     

    第41行是模式规则。

    这个makefile非常易于扩展到相同架构的项目。 

    func.h如下:

    1 #ifndef FUNC_H
    2 #define FUNC_H
    3 
    4 void foo();
    5 
    6 #endif

    func.c如下:

    1 #include <stdio.h>
    2 #include "func.h"
    3 
    4 void foo()
    5 {
    6     printf("void foo() : %s
    ", "Hello, D.T.Software ...");
    7 }

    main.c如下:

    1 #include <stdio.h>
    2 #include "func.h"
    3 
    4 int main()
    5 {
    6     foo();
    7     
    8     return 0;
    9 }    

     小结:

    参考:

      狄泰软件学院视频教程

      makefile手册 

  • 相关阅读:
    Windows 7 X64位平台下,VC6调试运行程序,中断调试无法退出
    在Windows中安装MinGW-w64(有图,一步一步)
    自我修养
    Core 事件总
    异步消息
    微信小程序
    安装Zookeeper集群
    Linux删除非空目录
    adoop集群动态添加和删除节点
    安装和配置hadoop集群步骤
  • 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9735188.html
Copyright © 2011-2022 走看看