zoukankan      html  css  js  c++  java
  • Makefile中进行宏定义-***

    实际上是gcc命令支持-D宏定义,相当于C中的全局#define:

    gcc -D name
    gcc -D name=definition
    Makefile中可以定义变量(和宏很像),但是是给make解释器用的,对所编译的文件完全没有作用。
     
    MSTAR:宏定义方式:字串定义方式和值定义方式

    CC_TVOPTS += -DMS_BOARD_TYPE_SEL=$(BOARD_TYPE_SEL)
    CC_TVOPTS += -DMS_SW_CUS_SEL=SW_CONFIG_TRUNK_ATVMM
    CC_TVOPTS += -DENABLE_CAPE=0
    CC_TVOPTS += -DMS_SW_TEST="VIDEOCON.BIN"

    CC_TVOPTS += -DMS_SW_TEST="${MEGENAME}"

     
    关键词: Make宏定义 Make传递宏定义 Makefile中添加宏定义 Makefile -D

    在Makefile中我们可以通过宏定义来控制源程序的编译。只要在Makefile中的CFLAGS中通过选项-D来指定你于定义的宏即可。

    如:
    CFLAGS += -D _YUQIANG
    在编译的时候加上此选项就可以了: $(CC) $(CFLAGS) $^ -o $@ 

    下面是我写的一个测试文件:

    例如:

    Makefile文件内容为:

    CC = gcc
    RM = rm

    CFLAGS += -D _YUQIANG

    TARGETS := myapp

    all:$(TARGETS)

    $(TARGETS):main.c
    $(CC) $(CFLAGS) $^ -o $@

    clean:
    -$(RM) -f *.o
    -$(RM) -f $(TARGETS)

     

    main.c文件的内容为:
    #include <stdio.h>

    int main()
    {

    #ifdef _YUQIANG
    printf("Hello Yu Qiang, How are you? ");
    #else
    printf("Sorry to lost you. ");
    #endif

    return 0;
    }


    在端口中输入    make clean all
    然后输入           ./myapp

    结果                  
    Hello Yu Qiang, How are you?
  • 相关阅读:
    【Azure】Azure 命令行接口 (CLI)
    【Git】敏感信息保护
    【LeetCode】31.下一个排列
    【LeetCode】26.删除排序数组中的重复项
    【LeetCode】16. 最接近的三数之和
    【LeetCode】15.三数之和
    工作中常用的 JVM 配置参数有哪些?
    Java面试突击100题
    Java奇淫异术
    Linux 大文件按大小切割,合并还原
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/4277876.html
Copyright © 2011-2022 走看看