很抱歉,如果这是一个原始问题,但我在linux中真的很新。有没有办法在使用make
命令构建应用程序时替换源代码中的常量?
我知道下一个可能的方法是更改源代码中使用的头文件,但我问这是因为我必须编程多个微控制器,每个微控制器应该有一个唯一的整数作为其编号(这个编号分配为代码中的常量)。
任何提示都将不胜感激!
答案 0 :(得分:3)
您可以使用命令行上传递给编译器的 C语言宏。通常的Makefile
代码段看起来像
CFLAGS = -DVERSION_INT=42 -DVERSION_STRING=\"Frobozz Magic Frobnicator (TM)\"
main: main.c
$(CC) $(CFLAGS) -o $@ main.c
在main.c中你可能有
static int version = VERSION_INT;
static char vers[] = VERSION_STRING;
答案 1 :(得分:2)
通常通过在调用编译器时定义预处理器宏来完成,例如:
# Makefile
NUMBER := 42
%.o : %.c
gcc -c -o $@ ${CPPFLAGS} ${CFLAGS} -DNUMBER=${NUMBER} $<
在源文件中:
// some.c
int number = NUMBER;