Swig не может преобразовать байтовый объект python3 в std :: string

Я пытаюсь интерфейс Python3 с C ++, используя SWIG, и он продолжает выдавать следующую ошибку

>> ipc.sendMessage(q, b'qwe')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: in method 'sendMessage', argument 2 of type 'std::string'**

Ниже приведены прикрепленные файлы:

файл ipc.i

%module ipc

%begin %{
#define SWIG_PYTHON_STRICT_BYTE_CHAR
#include "ipc.h"%}

%include std_string.i
%include stl.i
%include "ipc.h"

файл ipc.h

#include<string>

extern int createQueue();
extern bool sendMessage(int, std::string);
extern std::string receiveMessage(int);
extern bool removeQueue(int);

Команда используется для сборки

>> swig -c++ -python ipc.i
>> g++ -fpic -c ipc.h ipc_wrap.cxx ipc.cpp -I/usr/include/python3.5
>> gcc -shared ipc_wrap.o ipc.o -o _ipc.so -lstdc++

0

Решение

Проблема была с SWIG 3.0.8 и была решена после обновления до 3.0.10.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]