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?
  • 相关阅读:
    springmvc和struts2的区别(转)
    springmvc和struts2的区别
    sql优化(转)
    java反射机制
    阿里云产品
    vscode 插件推荐
    测试JS方法运行时间
    基于VUE2.0的分页插件(很好用,很简单)
    【软件测试】测试管理工具----禅道
    Vue.js中用webpack合并打包多个组件并实现按需加载
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/4277876.html
Copyright © 2011-2022 走看看