gpt4 book ai didi

c++ - Swig 无法将 python3 的字节对象转换为 std::string

转载 作者:行者123 更新时间:2023-12-02 10:39:21 25 4
gpt4 key购买 nike

我正在尝试使用 SWIG 将 python3 与 C++ 接口(interface),它不断抛出以下错误

>> 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++

最佳答案

问题出在 SWIG 3.0.8 上,并在更新到 3.0.10 后得到解决。

关于c++ - Swig 无法将 python3 的字节对象转换为 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51560785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com