c c++源程序生成可执行文件的过程一般经过编译和链接的过程。编译就是把源程序编译生成中间文件,也就是.obj(Win)。这个过程中检查语法是否正确,函数和变量是否正确声明(对于后者,要制定路径正确的头文件)。所以如果函数只在头文件中正确声明而不在源文件中实现的话是可以通过编译的。当然如果不对函数进行实现,链接过程中会出现错误。
编译的过程中我们可以通过添加编译开关控制我们的代码编译过程。
以下是例子程序
int main(void)
{
#ifdef DEBUG
printf("debug");
#endif
}
Makefile文件
CC = gcc
TARGETS = main
SRCS = main.c
OBJS = main.o
COMFLAGS = -DDEBUG
.PHONY:clean
$(TARGETS):$(OBJS)
$(CC) $^ -o $@
%.o:%.c
$(CC) $(COMFLAGS ) -c $^ -o $@ #添加编译开关一定要在这个过程中,如果把编译开关放在上边的过程是没用的
clean:
rm -f $(TARGETS) $(OBJS)
Makefile中自定义宏进行条件编译,布布扣,bubuko.com
原文:http://blog.csdn.net/u012554768/article/details/21095191