Ich habe gerade eine einfache ausführbare C-Datei geschrieben, um zu überprüfen, ob sie Python.h
funktioniert oder nicht
#include<Python.h>
#include<stdio.h>
int main()
{
printf("this is a python header file included programm\n");
return 0;
}
Offensichtlich macht es nicht viel. Wenn ich jedoch versuche, es gcc
damit zu kompilieren , erhalte ich einen Fehler:
foo.c:1:19: fatal error: Python.h: No such file or directory.
Dann habe ich überprüft, ob das Python-Dev- Paket Python.h
installiert wurde oder nicht locate
.
$locate Python.h
/usr/include/python2.7/Python.h
Mir ist klar, dass ich die Python.h
Header-Datei auf meinem System habe. Wie bringe ich meine ausführbare Datei zum Laufen?
Antworten:
Sie müssen Ihr Include qualifizieren
Oder sagen Sie gcc, wo Python.h mit dem zu finden ist
quelle
Sie müssen GCC den Include-Pfad für den
Python.h
Header bereitstellen . Dies kann mit der-I
Flagge erfolgen:Es gibt jedoch einen besseren Weg: Verwenden Sie pkg-config :
Dadurch werden die Flags ausgegeben, die an GCC übergeben werden müssen, um Anwendungen zu kompilieren, die die Python-Header und -Bibliotheken verwenden.
Verwenden Sie beim Verknüpfen die Ausgabe dieses Befehls, um die entsprechenden Bibliotheken einzuschließen:
Sie können sogar beide Schritte kombinieren mit:
quelle
"gcc file.o -o program"