main.c 文件如下:
#include <stdio.h>
int main()
{
printf("=======soft infomation=======\n");
//以下信息均在gcc时已预定义
printf("soft_ver:\t%s\n",__VER__);
printf("author:\t\t%s\n",__AUTHOR__);
printf("sn_num:\t\t%d\n",__SN_NUM__);
printf("make_time:\t%s\n",__MAKE_TIME__);
printf("==============end=============\n");
return 0;
}
makefile文件如下:
##########################################
VER=V1.23
AUTHOR=bnis
SN_NUM=1234
MAKE_TIME=$(shell date +%H:%M:%S )
MAKE_DATE=$(shell date +%Y-%m-%d )
CFLAGS += -D __VER__=\"$(VER)\"
CFLAGS += -D __AUTHOR__=\"$(AUTHOR)\"
CFLAGS += -D __SN_NUM__=$(SN_NUM)
CFLAGS += -D __MAKE_TIME__=\"$(MAKE_DATE)_$(MAKE_TIME)\"
#########################################
.PHONY:
all:
gcc $(CFLAGS) main.c
./a.out
clean:
rm -rf *.out
make运行效果如下:

本文介绍了C程序中使用预编译宏如__VER__,__AUTHOR__等存储软件信息,并通过Makefile设置编译选项。makefile中展示了如何动态插入这些值到编译过程。

492

被折叠的 条评论
为什么被折叠?



