最近编译了一个h.264的开源软件,发现其中一个错误是没有定义变量,详细查看了下该文件时选择编译的,即采用了#ifdef USE_DISPLAY则编译该段代码,如果没有则不进行编译。此处,我们在源文件中没有进行定义,而是在makefile中进行定义的,下面写个小的测试代码,如下所示
#include <stdio.h>
int main()
{
#ifdef USE_DISPLAY
printf("define USE_DISPLAY macro!\n");
#else
printf("not define USE_DISPLAY macro!\n");
#endif
return 0;
}
在makefile中定义宏USE_DISPLAY,定义方法是-DUSE_DISPLAY,如下所示
.PHONY: all
CC = gcc
RM =rm
CFLAGS = -DUSE_DISPLAY
TARGETS := myapp
all : $(TARGETS)
$(TARGETS) : main.c
$(CC) $(CFLAGS) $^ -o $@
clean:
$(RM) -f *.o
$(RM) -f $(TARGETS)