【发布时间】:2021-12-22 14:37:25
【问题描述】:
我有一个带有声明函数的宏的头文件。我需要将我的头文件导入到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,导入时需要一个头文件来链接DLL的函数,这是我的问题,它不能扩展宏来读取函数声明,所以我想要一种方法来传递扩展的宏到另一个文件,labview 不理解扩展的宏。这个问题只针对头文件。
【问题讨论】:
-
我不明白这个问题。你的宏正在做你所期望的。正常输入有什么问题?顺便说一句,您可能正在使用 gcc 编译器。
-
我重写了@BarmakShemirani 的问题
-
不知道能不能做到。这些是你自己的 c 函数吗?我的意思是,如果它与 MinGW 相关,它可能有很多用于 Windows API 的宏,可能 LabView 无论如何都无法处理。
-
这是我导入labview的DLL,导入时需要一个头文件来链接DLL的函数,这是我的问题,它不能扩展宏来读取函数声明,所以我'想要一种将扩展宏传递给另一个文件的方法,labview 不理解扩展宏。这个问题只针对头文件。
-
您可以告诉 GCC 在预处理后打印结果,通过选项
-E,这将展开所有宏。将此输出保存在一个不同命名的标头中,从其原始名称派生,例如“library-expanded.h”,并将其输入 LabView。您可以尝试在 Eclipse 中使用 pre-build 或 post-build 命令,具体取决于您的项目类型,或者将此标头添加为额外目标。
标签: c gcc build eclipse-cdt labview