在C++库中嵌入Python
我正在尝试把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”。