Je viens d'écrire un simple exécutable C pour vérifier si ça Python.h
marche ou pas
#include<Python.h>
#include<stdio.h>
int main()
{
printf("this is a python header file included programm\n");
return 0;
}
De toute évidence, cela ne fait pas grand-chose. Cependant, lorsque j'essaie de le compiler avec, gcc
cela me donne une erreur:
foo.c:1:19: fatal error: Python.h: No such file or directory.
Ensuite, j'ai vérifié si le paquet python-dev était Python.h
installé ou non locate
.
$locate Python.h
/usr/include/python2.7/Python.h
Il est clair pour moi que j'ai le Python.h
fichier d'en-tête sur mon système. Comment faire fonctionner mon exécutable?
Réponses:
Vous devez qualifier votre inclusion
Ou dites à gcc où trouver Python.h avec le
la source
Vous devez fournir à GCC le chemin d'inclusion de l'en-
Python.h
tête. Cela peut être fait avec le-I
drapeau:Cependant, il existe un meilleur moyen: utilisez pkg-config :
Cela produira les drapeaux qui doivent être passés à GCC afin de compiler les applications qui utilisent les en-têtes et les bibliothèques Python.
Lors de la liaison, utilisez la sortie de cette commande pour inclure les bibliothèques appropriées:
Vous pouvez même combiner les deux étapes avec:
la source
"gcc file.o -o program"