在C中调用Python-3函数

时间:2017-07-26 19:49:12

标签: python c python-3.x linker python-c-api

我试图使用以下代码在C中调用Python代码:

#include <stdio.h>
#include <Python.h>

int main()
{
    PyObject* pInt;

    Py_Initialize();

    PyRun_SimpleString("print('This is Python in C')");

    Py_Finalize();

    printf("\n");
    return 0;
} 

并尝试使用此命令进行编译:

gcc python_test_in_c.c 

然而,它返回错误返回说:

undefined referance to `__imp __Py_Initialise`
undefined referance to `__imp__PyRun_SimpleSringFlags`
undefined referance to `__imp__Py_Finalise`
collect2.exe:  error: ld returned 1 exit status

出了什么问题?我该如何解决这个问题?

任何帮助将不胜感激

P.S我不确定,但这可能与我在位于C:/ MinGW的MinGW的包含文件中复制Python“include”文件(包含Python.h)的事实有关吗

更新:我现在已经知道可以这样做,但认为是不好的做法。

1 个答案:

答案 0 :(得分:2)

你没有链接到python库...

尝试:

gcc python_test_in_c.c -lpython3.6m

将3.6更改为您选择的版本......