0
我正嘗試在用C++編寫的協議解析器和用Python編寫的TCP包過濾器之間創建接口。我對使用Python的C++並不熟悉,並且一直在努力使這兩者合作好幾天。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
TTCAPCompnent_t
結構定義在E2ProtocolHandler.h
有沒有人知道我在做什麼錯了? 在此先感謝您的幫助。