简体   繁体   English

C ++ Python解释器-Py_Initialize崩溃

[英]C++ Python interpreter - Py_Initialize is crashing

I have compiled the python source code for 32bit and am trying to use the Py_Initialize() API to init the python interpreter in my C++ application. 我已经为32位编译了python源代码,并尝试使用Py_Initialize() API在我的C ++应用程序中初始化python解释器。
Py_Initialize() leads to below crash. Py_Initialize()导致以下崩溃。 Please help me how to solve on this. 请帮助我如何解决这个问题。

Am compiling my code like below: 我正在编译我的代码,如下所示:

g++ ./Pythoninterpreter.cpp -m32 -lpthread -ldl -lutil /usr/lib/libm.a /usr/lib/libpython2.7.a -Xlinker -export-dynamic -I/root/python_tar/Python-2.7.6/Include -I/root/python_tar/Python-2.7.6 -o pythonintepreter

gdb back trace
===============

#0  0x080e8ba7 in va_build_value (format=0x8152ec1 "", va=0xffed7564 "\240\344\027\b\244y\355\377", flags=0) at Python/modsupport.c:521
521         memcpy(lva, va, sizeof(va_list));
(gdb) bt
#0  0x080e8ba7 in va_build_value (format=0x8152ec1 "", va=0xffed7564 "\240\344\027\b\244y\355\377", flags=0) at Python/modsupport.c:521
#1  0x080e8ca6 in Py_BuildValue (format=0x8152ebe "[O]") at Python/modsupport.c:485
#2  0x080a77a7 in mro_implementation (type=0x817e4a0) at Objects/typeobject.c:1605
#3  0x080a3d68 in mro_internal (type=0x4) at Objects/typeobject.c:1636
#4  0x080a4723 in PyType_Ready (type=0x817e4a0) at Objects/typeobject.c:4057
#5  0x080a5186 in PyType_Ready (type=0x817e3c0) at Objects/typeobject.c:4005
#6  0x08088252 in _Py_ReadyTypes () at Objects/object.c:2071
#7  0x080ee3f4 in Py_InitializeEx (install_sigs=1) at Python/pythonrun.c:191
#8  0x080eee32 in Py_Initialize () at Python/pythonrun.c:382
#9  0x080598fe in PythonIntepretor::PythonIntepretor(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned short) ()
#10 0x080595fe in main ()
(gdb)

I'm not entirely sure of what you want to do since you didn't provide the code on PythonInterpreter.cpp. 由于您未在PythonInterpreter.cpp上提供代码,因此我不确定您要做什么。

The following code compiles with the command line: 以下代码使用命令行编译:

g++ -I/usr/include/python2.7/ -o foo foo.cpp -lpython2.7 g ++ -I / usr / include / python2.7 / -o foo foo.cpp -lpython2.7

#include  "Python.h"
int main()
{
  Py_Initialize();
  return 0;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM