Я пытаюсь создать интерфейс между парсером протокола, написанным на C++, и фильтром пакетов TCP, написанным на Python. Я не знаком с использованием C++ с python и стараюсь, чтобы они сотрудничали в течение нескольких дней.SWIG Losing Scope of Structures
Я использую библиотеку swig. Класс разбора (я не писал) содержит много ссылок на другие файлы C++ через файлы заголовков. Класс C++ называется E2ProtocolHandler.cpp и имеет файл заголовка, содержащий все зависимости, называемые E2ProtocolHandler.h.
Я написал следующий интерфейс Swig соблюдать следующее:
%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
Кто-нибудь знает, что я делаю неправильно? Заранее благодарим за любую помощь.