使用 python 调用 C++代码,但全局变量里有一个 map<string, double> m1,导致无法执行

2015-12-12 22:17:59 +08:00
 Mardo

rt ,现在有一个 c++写好的模块,代码里有好几个类似的 map<string, double> m1 是全局变量,当需要初始化这些的时候,就会报错 Segmentation fault 。使用的是如下封装代码。

PyObject* wrap_loadFiles(PyObject* self, PyObject* args)
{
loadFiles();
}

static PyMethodDef keywordsExtraction[] =
{
{"loadFiles", wrap_loadFiles, METH_VARARGS ,"loadFiles"}
};

extern "C"

void initkeywordsExtraction()
{
PyObject* m;
m = Py_InitModule("keywordsExtraction", keywordsExtraction);
}

但是全局变量是 int 就没问题,是需要把 map<string, double>也封装么?我是 c++ python 菜鸟,跪求各位指点

3034 次点击
所在节点    Python
2 条回复
fy
2015-12-12 22:35:21 +08:00
并没有 swig 有自带的几个封装文件…… 但说好用也有限
zhuangzhuang1988
2015-12-12 22:36:01 +08:00
代码能否全一点..

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/243116

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX