有很多关于如何包装一个.c文件的单个函数的教程。但我想包装几个.c文件的所有功能。这就是我将它们全部包含在接口文件(interface.i)
中的原因/*interface.i*/
%module interface
%include source1.c
%include source2.c
%include source3.c
我现在想知道是否必须包含出现在.c文件中的所有头文件。如果我必须考虑头文件中寻址的头文件。
答案 0 :(得分:1)
通常你的C程序应该有一个它暴露的界面。例如,source1 / 2 / 3.c及其内部头文件source1 / 2 / 3.h编译为foo.dll。然后接口foo_function.h公开了可以从外部调用的函数。
要包装外部函数,只需要在interface.i中使用foo_functions.h。你不需要source1 / 2 / 3.h。
C代码可能有另一个foo_constants.h左右,属于接口,具有您需要的结构和非常方便的常量定义。你也应该加上它。
此外,您可能需要SWIG本身的一些包含。生成例如指针和数组处理。类似的东西:
%包括cpointer.i
%pointer_functions(int,intp)
%包括carrays.i
%array_functions(unsigned int,uintarray)