Встраивание Python в библиотеки C ++ - PullRequest
4 голосов
/ 02 июля 2011

Я работаю над встраиванием 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 Ответ

4 голосов
/ 02 июля 2011

Вам необходимо создать ссылку на libpython.Программисты UNIX делают это с помощью «-lpython» в команде link (то есть в конце этой команды «g ++»).На Mac я думаю, что это будет "-фреймворк Python".

...