如何在 Cmake 中定义宏列表

How to define a list of macros in Cmake

提问人:rammmmm_ 提问时间:11/10/2023 更新时间:11/10/2023 访问量:38

问:

我正在尝试在 Cmake 中定义一个宏列表。

以下代码在文件中:CMakeLists.txt

set(COMP_PN_LIST ${PN_LIST})

以下代码在文件中:pn.cmake

set(PN_LIST PN="100-X-Z12345RevB")

这将生成以下错误:error: use of undeclared identifier 'X'

#define PN 100-X-Z12345RevB
               ^

error: use of undeclared identifier 'Z12345RevB'

#define PN 100-X-Z12345RevB
                 ^

我现在正在尝试使用单元素列表。我可能需要一个包含多个元素的列表。

任何建议都是值得赞赏的!我是 Cmake 的新手,所以现在还在导航。

我已经尝试过,但我遇到了set(PN_LIST (PN="100-X-Z12345RevB"))pn.cmake/bin/sh: 1: Syntax error: "(" unexpected

我应该期待没有错误#define PN 100-X-Z12345RevB

C CMake

评论

1赞 Botje 11/10/2023
否,在 CMake 中设置变量不会自动生成语句。显示您的 CMakeLists:.txt#define
0赞 rammmmm_ 11/10/2023
对不起,代码库是专有的,但总体思路包含在上面的问题中。调试时的附加信息,当我直接将字符串赋值为 时,我没有问题。当我使用以下代码时遇到问题:.难道只是我缺少一些语法的东西吗?const uint8 PN_ARR[] __attribute__((section(".pn_cs"))) = "100-X-Z12345RevB";const uint8 PN_ARR[] __attribute__((section(".pn_cs"))) = PN;
0赞 Botje 11/10/2023
是的,您缺少一个最小的可重现示例,该示例包含实际将这些宏放入 C 代码中的代码。
0赞 Botje 11/10/2023
例如,如果您使用并 #cmakedefine FOO_STRING“@FOO_STRING@”,甚至不可能遇到您的问题。configure_file

答: 暂无答案