我想在C ++代码中添加python函数。
我在gtk中创建了一个GUI(在Raspberry PI上),现在我想使用一个易于在python中处理的相机模块。 (我想在按下按钮时直接启动视频。)
所以我添加了文件Python.h
#include <python3.4m/Python.h>
#include <python3.4m/pythonrun.h>
然后我认为它应该有用,但是当我尝试编译Py_Initialize()
我收到错误:
对Py_Initialize的未定义引用。
我认为这很奇怪,因为当我输入时,出现了Py_Initialize
的选择。
答案 0 :(得分:0)
就标题而言,你应该没问题,因为它已经编译但在链接时失败了。
现在您需要链接Python库。这样做的方式很大程度上取决于您使用的工具链。
答案 1 :(得分:0)
我尝试了另一种方式,
gcc -I / pathtopython3.4m file.c -lpython3.4m
但后来我得到错误:致命错误:gtk / gtk.h没有这样的文件或目录 但是当我在Codeblocks中编译它时,这只适用于Python-函数未定义。
有人知道我能做什么吗?
答案 2 :(得分:0)
也许您可以看到my answer in another question:
如果已安装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
时,它是编译选项。
答案 3 :(得分:0)
在gcc命令行上设置python include文件夹及其静态库,并将python动态库放在LD_LIBRARY_PATH
上。在Py_Initialize()
之前,请不要忘记使用Py_SetPythonHome()
设置python home。这些步骤必须足以编译和运行代码。