一、GCC编译器中使用:
-D macro=string,等价于在头文件中定义:#define macro string。
例如:-D TRUE=true,等价于:#define TRUE true
-D macro,等价于在头文件中定义:#define macro 1,实际上也达到了定义:#define macro的目的。
例如:-D Linux,等价于:#define LINUX 1(与#define LINUX作用类似)。
--define-macro macro=string与-D macro=string作用相同。
如:TEST.C 文件
#include <stdio.h>#include <stdlib.h>main()
{
#ifdef p1
printf("Hello p1");#else
printf("Hello p2");#endif
}
1.编译: gcc -o test test.c
运行: ./test
输出: Hello p2
2.编译: gcc -o test test.c -D p1
运行: ./test
输出: Hello p1
二、在Makefile中进行宏定义-D
在Makefile中我们可以通过宏定义来控制源程序的编译。只要在Makefile中的CFLAGS中通过选项-D来指定你于定义的宏即可。
如:
CFLAGS += -D _YUQIANG
在编译的时候加上此选项就可以了: $(CC) $(CFLAGS) $^ -o $@
DEFINES += -D BVS_DIRECTION=$(BVS_DIRECTION) \ -D BVS_LAYOUT=$(BVS_LAYOUT) \ -D $(BVS_TYPE)\


相关推荐
为什么shell的速度很慢?
变压器、阻容与直接耦合放大器电路图
利尔达有源RFID平台资源
MSP430x5xx系列
CHIPCON低功耗无线通讯IC介绍
深电流负反馈差动放大器图
低压电源MOSFET设计
首发Intel 18A工艺!酷睿Ultra 300 Panther Lake功耗最高只有64W
谁会关心高速串行信号中的隔直电容器到底放到哪呢?
一头雾水
关于定时器的问题
MSP430—有源RFID的最佳选择
再问个问题,有关用mpc来控制FPGA
揭秘ADAS系统中核心传感器技术深度解析
用AT89C52和TLC1543实现数据采集系统
用dsPIC30F2010 控制无传感器BLDC 电机
有源RFID的常见应用
一个移植uclinux的问题,请各位帮忙!!!
互补对称功率放大电路图
PCIe的AC耦合电容靠近哪里放置?你是不是一直被误导了?
迎刃而解——华大九天Polas利器应对功率设计挑战
用AVR单片机8位数据产生随机数
测量微小电流的放大器图
用DSP控制器整合马达控制和功率因数校正
选频声控电路图
设计高压SIC的电池断开开关
健康监测的下一个突破点?超精确温度传感技术!
电子元器件行业迎新机遇,CEF深圳展共谋电子行业未来蓝图
基本示波器操作
用DSP进行mp3解压缩的算法原程序