C++で書かれたプロトコルパーサとPythonで書かれたTCPパケットフィルタとの間のインタフェースを作成しようとしています。私はPythonでC++を使用することに慣れていません。そして、2人を数日間協力させようとしています。SWIG構造体のスコープを失う
私はswigライブラリを使用しています。解析クラス(私は書いていない)は、ヘッダファイルを通して他のC++ファイルへの多くの参照を含んでいます。 C++クラスはE2ProtocolHandler.cppと呼ばれ、E2ProtocolHandler.hと呼ばれるすべての依存関係を含むヘッダーファイルがあります。
私はこれを遵守するため、以下のガブガブ飲むインターフェイスを書いた:
%module e2ParserSwig
%{
#include "E2ProtocolHandler.h"
%}
bool parseE2(std::vector<uint8_t> ui8BufferIn, TTCAPMessage_t &tcapMsg);
これは私に何の問題も与えない実行:スコープの問題が発生した場所
swig -c++ -python -o e2Parser_wrap.cpp e2ParserSwig.i
コンパイルは次のとおりです。
g++ -c -fPIC e2Parser_wrap.cpp -I/usr/include/python2.6 -I/usr/lib/python2.6
エラー:
e2Parser_wrap.cpp:6607: error: ‘TTCAPComponent_t’ was not declared in this scope
の構造はE2ProtocolHandler.h
で定義されています。私が間違っていることを知っている人はいますか? ご協力いただきありがとうございます。