我想使用SWIG为DCMTK库(用C ++编写)创建C#包装器。我有完整的源代码DCMTK,但我有一个问题我无法解决......
我的SWIG脚本如下所示:
#ifndef WRAPPER_SWIG_I
# define WRAPPER_SWIG_I
%{
%}
%include "include/dcmtk/dcmjpeg/ddpiimpl.h"
%include "include/dcmtk/dcmjpeg/dipijpeg.h"
%include "include/dcmtk/dcmjpeg/djcodecd.h"
#endif
然后我从命令行运行SWIG:
swig -includeall -Wall -c++ -csharp -outdir $(SolutionDir)\dcmjpegcsharp\ -module dcmjpeg -namespace dcmjpeg dcmjpeg.i
...它会抛出许多错误,无法找到头文件(包含在脚本中列出的文件中)。例如,头文件“include / dcmtk / dcmjpeg / ddpiimpl.h”包含文件“dcmtk / config / osconfig.h”,它位于完全不同的位置。
问题是DCMTK库的源代码中的C ++头文件分散在多个文件夹中,并且“彼此不会看到”。 有一个简单的解决方案吗?也许强制SWIG自动并递归地搜索DCMTK源的某个根目录中的头文件?