1、前言
在项目开发过程中,遇到需要将makefile中解析的参数(比如git log解析出的hash值)传入到C代码中。下面详细讲解如何实现将makefile中参数传递到C文件中。
2、参考
3、C文件
#include <stdio.h>
int main()
{
printf("Make Time: %s \n",MAKE_TIME);
return 0;
}
4、makefile文件
GET_DATE := $(shell date +%F)
GET_TIME := $(shell date +%H:%M:%S)
all: main.o
gcc -o main main.o
main.o: main.cpp
g++ -o main.o -DMAKE_TIME=\"$(GET_DATE)\ $(GET_TIME)\" -c main.cpp
clean:
@-rm main
@-rm *.o
@ls -laths
编译过程:
运行结果:
5、解析
在本例中,主要是通过-D参数进行传递 。-D参数为gcc编译添加宏定义选项,编译时将宏定义传递给C文件。
——————THE END!———————
本博文只能阅读,谢绝转载,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2963033731@qq.com