如何使用扩展宏复制 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:
我的项目是一个共享库(DLL)
我正在使用 Eclipse IDE for C/C++ Development
编译器是gcc
编辑
这是我导入到 labview 中的 DLL,导入时需要 header 到 link 以及 DLL 的函数,这是我的问题,它无法扩展宏来读取函数声明,所以我想要一种将扩展的宏传递给另一个文件的方法,labview 只理解扩展的宏。此问题仅针对 header 文件。
要获得预处理的 header 文件,请使用 GCC 的选项 -E
。它在预处理阶段后产生一个输出,其中包括所有宏的扩展。
gcc -E library.h -o library_expanded.h
就可以了。根据您的喜好调整文件名。
要在您的构建中自动执行此操作,请使用 IDE 的适当构建命令,或将扩展的 header 添加到您的 Makefile。我建议 运行 仅当您的库构建成功时才使用此命令。
我有一个 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:
我的项目是一个共享库(DLL)
我正在使用
Eclipse IDE for C/C++ Development
编译器是
gcc
编辑 这是我导入到 labview 中的 DLL,导入时需要 header 到 link 以及 DLL 的函数,这是我的问题,它无法扩展宏来读取函数声明,所以我想要一种将扩展的宏传递给另一个文件的方法,labview 只理解扩展的宏。此问题仅针对 header 文件。
要获得预处理的 header 文件,请使用 GCC 的选项 -E
。它在预处理阶段后产生一个输出,其中包括所有宏的扩展。
gcc -E library.h -o library_expanded.h
就可以了。根据您的喜好调整文件名。
要在您的构建中自动执行此操作,请使用 IDE 的适当构建命令,或将扩展的 header 添加到您的 Makefile。我建议 运行 仅当您的库构建成功时才使用此命令。