Você precisa qualificar sua inclusão
#include <python2.7/Python.h>
Ou diga ao gcc onde encontrar o Python.h com o
gcc -I /usr/include/python2.7/ program.c
Acabei de escrever um executável C simples para verificar se Python.h
está funcionando ou não
#include<Python.h>
#include<stdio.h>
int main()
{
printf("this is a python header file included programm\n");
return 0;
}
Obviamente, não faz muito. No entanto, quando tento compilá-lo com gcc
, ocorre um erro:
foo.c:1:19: fatal error: Python.h: No such file or directory.
Então eu verifiquei se o python-dev tem Python.h
instalado ou não usando locate
.
$locate Python.h
/usr/include/python2.7/Python.h
É claro para mim que tenho o arquivo de cabeçalho Python.h
em meu sistema. Como faço para que meu executável funcione?
Você precisa qualificar sua inclusão
#include <python2.7/Python.h>
Ou diga ao gcc onde encontrar o Python.h com o
gcc -I /usr/include/python2.7/ program.c
Você precisa fornecer ao GCC o caminho de inclusão para o cabeçalho Python.h
. Isso pode ser feito com o sinalizador -I
:
gcc -c -I/usr/include/python2.7 sourcefile.c
No entanto, existe uma maneira melhor: use pkg-config :
pkg-config --cflags python
Isso exibirá os sinalizadores que precisam ser passados para o GCC para compilar aplicativos que usam os cabeçalhos e bibliotecas do Python.
Ao vincular, use a saída desse comando para incluir as bibliotecas apropriadas:
pkg-config --libs python
Você pode até combinar as duas etapas com:
gcc 'pkg-config --cflags --libs python' sourcefile.c