Как мне скомпилировать C программу, которая включает Python .h на Windows? - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь научиться встраивать интерпретатор 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)?

...