我正在制作一个使用大量函数指针的构建,它struct
看起来像这样:
struct functionArray {
void (*func)(void);
} funcarray[20] = {
func1,
func2,
func3,
func4
};
其中func1
, func2
, ... 和func20
位于名为 functions.c 的文件中
我希望能够在构建期间执行此操作。例如,如果我改用宏:
funcarray[20] = {
FUNCTION_LIST
};
我可以用生成的头文件来做到这一点。有点像:
// testheader.h.in
#define FUNCTION_LIST @functions_in_file@
无论如何我可以做到这一点吗?我知道我可以来回编辑文件,但这是我第二次或第三次鼓励这个。我查看了 [cmake reference][1] 并没有看到任何让我印象深刻的东西。我可以以某种方式使用objdump
或nm
将函数名称通过管道传输到cmake
文件吗?
编辑:
从文件中获取函数名称.o
也应该可以。我想它没有理由成为一个.c
文件。