我正在尝试使用在 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}
没有运气。
谢谢你。
将整个字符串用双引号引起来。
add_compile_definitions("MY_CHAR_ARRAY={0xAA, 0xBB, 0xCC}")
更喜欢
target_compile_definitions
。