Я пытаюсь научиться встраивать интерпретатор Python в мои программы на C / C ++.
Мне нравится эта концепция, потому что она может позволить мне расширять программы C во время выполнения, а также разрешить пользователям писать собственные сценарии / плагины.
Подробная инструкция по внедрению Python в C предоставляется по адресу: https://docs.python.org/3/extending/embedding.html
Я использую пример код, указанный в документации Python, чтобы выяснить, какая механика задействована:
embedded.c
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_SetProgramName(argv[0]); /* optional but recommended */
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}
Проблема в том, что я не могу понять, как его скомпилировать на Windows используя g cc.
C:\Users\user\embedded_python> gcc embedded.c
embedded.c:2:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
Мне кажется, проблема в том, что мне нужно связать файл Python .h, но я не могу правильно понять флаги компилятора:
C:\Users\user\Desktop\embedded_python>gcc -IC:\Users\user\AppData\Local\Programs\Python\Python38 -lPython38 embedded.c
embedded.c:2:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
Как заставить эту программу компилироваться на Windows (желательно с gcc / g ++, чтобы избежать раздувания Visual Studio)?