如何使用扩展宏复制 header 文件来创建新文件

How to create a new file copying a header file with the expanded macro

我有一个 header 文件,其中包含一个声明函数的宏。我需要将我的 header 文件导入 LabView,但他无法读取宏,因此无法识别我声明的函数。

我想在构建过程中使用扩展的宏生成另一个代码文件。

是否有在 Eclipse 上执行此操作的构建配置?

示例:

宏:

#define FUNCTION_SIGNATURE(TYPE, RET, FUNCTION) \
    RET TYPE##_##FUNCTION(int port, char* id)   \

header.h

FUNCTION_SIGNATURE(TEST, int, init);

我需要一个包含扩展宏的文件,例如:

int  TEST_init(int port, char* id);

OBS:

编辑 这是我导入到 labview 中的 DLL,导入时需要 header 到 link 以及 DLL 的函数,这是我的问题,它无法扩展宏来读取函数声明,所以我想要一种将扩展的宏传递给另一个文件的方法,labview 只理解扩展的宏。此问题仅针对 header 文件。

要获得预处理的 header 文件,请使用 GCC 的选项 -E。它在预处理阶段后产生一个输出,其中包括所有宏的扩展。

gcc -E library.h -o library_expanded.h 就可以了。根据您的喜好调整文件名。

要在您的构建中自动执行此操作,请使用 IDE 的适当构建命令,或将扩展的 header 添加到您的 Makefile。我建议 运行 仅当您的库构建成功时才使用此命令。