使用 add_compile_definitions() 来初始化数组

问题描述 投票:0回答:1

我正在尝试使用在 CMakeLists.txt 文件中覆盖的预处理器定义来初始化

uint8_t
数组。例如:

#ifndef MY_CHAR_ARRAY
#define MY_CHAR_ARRAY {0x00, 0x01, 0x02}
#endif

uint8_t str[3] = MY_CHAR_ARRAY;

在我的 CMakeLists.txt 文件中使用

MY_CHAR_ARRAY
覆盖
add_compile_definitions()
的语法是什么(如果存在)?

我对语法做了各种猜测:

add_compile_definitions(MY_CHAR_ARRAY={0xAA, 0xBB, 0xCC})
add_compile_definitions(MY_CHAR_ARRAY={0xAA}{0xBB}{0xCC}
add_compile_definitions(MY_CHAR_ARRAY={0xAA},{0xBB},{0xCC}
add_compile_definitions(MY_CHAR_ARRAY={0xAA} {0xBB} {0xCC}
add_compile_definitions(MY_CHAR_ARRAY={0xAA0xBB0xCC}
add_compile_definitions(MY_CHAR_ARRAY={0xAA 0xBB 0xCC}
add_compile_definitions(MY_CHAR_ARRAY={0xAABBCC}

没有运气。

谢谢你。

c++ c cmake c-preprocessor
1个回答
0
投票

将整个字符串用双引号引起来。

add_compile_definitions("MY_CHAR_ARRAY={0xAA, 0xBB, 0xCC}")

更喜欢

target_compile_definitions

© www.soinside.com 2019 - 2024. All rights reserved.