我想使用 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 源的某个根目录中自动递归搜索头文件?