在C++库中嵌入Python

5 投票
1 回答
1349 浏览
提问于 2025-04-16 20:41

我正在尝试把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 个回答

5

你需要链接libpython这个库。UNIX程序员在链接命令中会加上“-lpython”(也就是在“g++”命令的最后面)。如果你是在Mac上,应该用“-framework Python”。

撰写回答