如何将整数数组指定为编译器命令行定义 -D



我希望能够在编译时指定整数列表 这些整数用于输出系统中某些组件的调试信息,这些组件将这些 intger 作为 id。打印调试信息的实际实现是在我们自己的一个库中,但我需要能够指定要从使用该库的项目调试哪些 id,如下所示

-DDEBUG_SENSORIDS="12,23,45"

在实际的C++代码中,定义(当然存在时(需要转换为整数数组或向量。

以下解决方案会导致编译错误

int debugIds[] = { DEBUG_SENSORIDS };

<command-line>:0:31: error: expected '}' before ';' token
srcSenseNode.cpp:19:20: note: in expansion of macro 'DEBUG_SENSORIDS'
int debugIds[] = { DEBUG_SENSORIDS };
^ 
srcSenseNode.cpp:19:36: error: expected declaration before '}' token
int debugIds[] = { DEBUG_SENSORIDS };
^

我怎样才能实现这一点?

删除引号:

-DDEBUG_SENSOR_VALUES=12,23,45

没关系,这是一个愚蠢的错误,因为 -D 声明有一个 ; 附加到末尾

最新更新