以下使用Python.h的C程序:
$ cat > test.c
#include <python3.7/Python.h>
int main() {
Py_Initialize();
Py_CompileString("foo", "bar", 0);
Py_Finalize();
}
^D
...有段错误:
$ gcc test.c -lpython3.7m
$ ./a.out
Segmentation fault (core dumped)
使用gdb进行调试会导致崩溃:
PyParser_AddToken () from /usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0
有什么想法吗?
答案 0 :(得分:4)
start
的值应该是Py_eval_input
,Py_file_input
或Py_single_input
,而不是0
。