如何在使用 Make 或 CMake 编译之前更改宏值?

How to change the macro value before comipling using Make or CMake?

我正在寻找更改宏值的方法。我想使用像 user-friendly 变量这样的宏值。就像我们使用 scanf 函数并将用户输入存储到变量。

如果这种方式不可行,那么我们可以使用 CMake 或 make 来实现吗?如果是那么怎么办?

示例。

header。 h

#define LED  8

我想在编译前更改这个值。有什么办法可以做到吗?

请详细说明。所以我完全可以理解。可能添加一些示例或 link 示例。

谢谢。

您需要一个编译标志 -DLED=8,您可以在其中将 8 替换为您想要的任何值。

你还应该用

包裹LED宏
#ifndef LED
#define LED 8
#endif

这样,-DLED=X 会将宏定义为 X,并且由于它已经定义,头文件不会尝试重新定义它。

关于CMake,尝试添加add_compile_definitions(LED=8)。查看 this 了解更多信息。