Py_Initialize未定义的引用

Py_Initialize undefined reference

本文关键字:引用 未定义 Initialize Py      更新时间:2023-10-16

我想在C++代码中添加python函数。

我在 gtk(在 Raspberry PI 上(中制作了一个 GUI,现在我想使用一个在 python 中易于处理的相机模块。(我想在按下按钮时直接开始播放视频。

所以我包含了文件Python.h

#include <python3.4m/Python.h>
#include <python3.4m/pythonrun.h>

然后我认为它应该可以工作,但是当我尝试编译时Py_Initialize()

我收到错误:

对Py_Initialize的未定义引用。

我认为这很奇怪,因为当我输入时,出现了Py_Initialize的选择。

就标头而言,您应该没问题,因为它编译但在链接时失败。

现在你需要链接到 Python 库。完成此操作的方式在很大程度上取决于您使用的工具链。

也许你可以在另一个问题中看到我的答案:

如果安装了Python 3.x,也许这个命令可以工作:

g++ hw.cpp `/usr/bin/python3-config --cflags` `/usr/python3-config --ldflags`

顺便说一下,你应该检查你的gcc和python版本。

据我所知,如果 gcc 版本是 5.4,python 版本是 3.7,它不起作用。(Python 3.5>是工作(

当你运行/usr/bin/python3-config --cflags,实际上,它是编译选项。

在 gcc 命令行上设置 python 包含文件夹及其静态库,并将 python 动态库放在LD_LIBRARY_PATH上。在Py_Initialize()之前,不要忘记用Py_SetPythonHome()将python设置回家。这些步骤必须足以编译和运行代码。