Indlejring Python i C under Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil kompilere en .c-fil, der indeholder en header Python.h ved hjælp af minGW på Windows 10. Mit mål er at indlejre nogle pythoncode i C, og dette er bare en lille test for kompilering.

Min kildefil ser ud som følger:



#include <stdio.h>
#include <C:Python27includePython.h>

int main() 
{
    printf("Hello World from C");

    Py\_Initialize();

    PyRun\_SimpleString("print('Hello World from Python!!!')");

    Py\_Finalize();


    return 0; 
}




Min makefile ser ud som følger:



all: HelloWorld.c
    gcc -Wall -I C:Python27include -L C:Python27libs  -o HelloWorld.exe HelloWorld.c -lpython27




Så hvis jeg kompilerer min kildekode med denne makefil, får jeg følgende fejl:



gcc -Wall -I C:Python27include -L C:Python27libs  -o HelloWorld.exe HelloWorld.c -lpython27
C:Usersga96duxAppDataLocalTempccUQs2pM.o:HelloWorld.c:(.text+0x1b): undefined reference to `\_imp\_\_Py\_Initialize'
C:Usersga96duxAppDataLocalTempccUQs2pM.o:HelloWorld.c:(.text+0x31): undefined reference to `\_imp\_\_PyRun\_SimpleStringFlags'
C:Usersga96duxAppDataLocalTempccUQs2pM.o:HelloWorld.c:(.text+0x38): undefined reference to `\_imp\_\_Py\_Finalize'
collect2.exe: error: ld returned 1 exit status
make: *** [all] Error 1




Jeg har prøvet alt, hvad jeg kunne finde på internettet, men det virker ikke, er der noget galt med makefile, er der nogen forslag til, hvordan man løser dette problem? Mange tak!

Bedste reference