Я встроил интерпретатор Python в код C ++. Хорошо работает на высокоуровневом уровне:
PyRun_SimpleFileEx(fd, "/file_path/some_script.py", 1)
Но мне нужно передать некоторые аргументы в код Python, поэтому я попытался продвинуться вперед с кодом из документации Python о внедрении. Однако XCode жалуется на некоторые функции, которые не определены. Я думаю, что мой
#include <Python/Python.h>
Не добавляет правильную версию Python и, возможно, указывает на версию системы (2.7), в которой нет заголовков с правильными функциями.
Флаги моего компоновщика:
-lpython3.7m -ldl -framework CoreFoundation
Я добавил папку Python include из фреймворка в пути поиска заголовка:
../../Support/Lib/Python/include
и папка Python Lib от платформы до путей поиска в библиотеке:
../../Support/Lib/Python/lib
Папка поддержки аналогична указанной в папках вверх из решения.
XCode не может найти следующие функции: PyUnicode_DecodeFSDefault()
и Py_FinalizeEx()
.
Первый определяется в unicodeobject.h
, который включается в Python.h
справа от того места, где он должен находиться в папке include, как я описал выше.
Я не уверен, что делаю неправильно, поэтому, возможно, кто-то может указать мне правильное направление. Заранее спасибо!