在Python中嵌入Python

时间:2011-07-01 22:58:13

标签: c++ python linker embedding

我正在努力将Python嵌入到某些C ++代码中,但是我已经陷入了编译困境。

对于头文件,我有

#include <Python.h>

我会先尝试,

$g++ EmbeddedPython.cpp

但最终会得到

EmbeddedPython.cpp:1:20: error: Python.h: No such file or directory
EmbeddedPython.cpp: In function ‘int main(int, char**)’:
EmbeddedPython.cpp:6: error: ‘Py_Initialize’ was not declared in this scope
....

然后我尝试了

g++ EmbeddedPython.cpp -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5

并且摆脱了前两个错误,但我仍然最终得到了

 Undefined symbols:
  "_Py_Initialize", referenced from:
  _main in ccxJAUAB.o

我对此有点新鲜,但我认为我学得很快。我相信我需要'链接'一个图书馆,对吧​​?但是哪一个以及如何?我需要动态还是静态的?

我正在使用MacBook Pro。

1 个答案:

答案 0 :(得分:4)

你需要链接lib python。 UNIX程序员在链接命令中使用“-python”执行此操作(即在“g ++”命令的末尾)。在Mac上,我认为它将是“-framework Python”。