我想使用SWIG爲DCMTK庫(使用C++編寫)創建C#封裝器。我有DCMTK完整的源代碼,但我有一個問題,我解決不了......使用SWIG的DCMTK庫的C#封裝器
我對夜風腳本是這樣的:
#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 -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源的某個根目錄中的頭文件?
一般來說,我建議如果可能的話,避免使用SWALL的包含選項。如果需要,可以使用-I設置搜索路徑,方式與使用GCC相同。 – Flexo