2011-12-23 8 views
3

pythonのC++拡張をコンパイルしようとしています。(SWIG C++からPython)警告301:classキーワードが使用されていますが、C++モードでは使用されていません

私はこのようになりますインターフェイスファイルfoo.iを作成しました:

%module foo 

%include "typemaps.i"       // For pointers to primitive types 
%include "std_string.i"       // std::string mapping 
%apply const std::string& {std::string* foo}; // data types containing std::string members 

%{ 
#define SWIG_FILE_WITH_INIT 
#include "../path/to/c++/header/files/foo_header.h" 
%} 

%apply double *OUTPUT { double *p, double *p2, double *p3 }; 
%apply double *OUTPUT { double *a1, double *a2, double *a3 }; 
%apply double *OUTPUT { double *a, double *b }; 

class FooBar 
{ 
    /* 
     method signatures etc ... 
    */ 
}; 

クラス・キーワードが検出されたときに警告が発行されます。さらに、クラス宣言では、メソッドシグネチャの1つで、SWIG barfsのいずれかの点でC++キーワード(bool)が検出されます。

私は、SWIGが解析されるファイルがC++であることを通知する必要があることを示すドキュメントには何も表示されません。実際には、IIRCのドキュメントではSWIGがファイルがヘッダーだけからC/C++であるかどうかを推測することができます - それで何が起こっていますか?

ちなみに、私はあなたがC++を使用している場合、あなたはそれを呼び出すときは、-c++call SWIGに必要SWIGバージョン2.0.4

+0

自分自身への注意:RTFM(http://www.swig.org/Doc2.0/SWIGPlus.html) –

答えて

9

を使用しています。

+0

うん、私は文書でそれを見つけた。上記の私のコメントを参照してください:) –

関連する問題