Python.h, найденные, располагаются, но не GCC

Я просто записал простой исполняемый файл C, чтобы проверить если Python.h работает или нет

#include<Python.h>
#include<stdio.h>
int main()
{
    printf("this is a python header file included programm\n");
    return 0;
}

Очевидно, это не делает многого. Однако, когда я пытаюсь скомпилировать его с gcc это дает мне ошибку:

foo.c:1:19: fatal error: Python.h: No such file or directory.

Затем я проверил, чтобы видеть, имеет ли Install python-devпакет python-dev Python.h установленный или не использование locate.

$locate Python.h
/usr/include/python2.7/Python.h

Мне ясно, что я имею Python.h заголовочный файл в моей системе. Как я получаю свою исполняемую работу?

12
задан 11 March 2017 в 12:03

2 ответа

Необходимо квалифицировать Ваш включать

#include <python2.7/Python.h>

Или сказать gcc, где найти Python.h с

gcc -I /usr/include/python2.7/ program.c 
18
ответ дан 23 November 2019 в 03:32

Необходимо предоставить GCC включать путь для Python.h заголовок. Это может быть сделано с эти -I флаг:

gcc -c -I/usr/include/python2.7 sourcefile.c

Однако существует лучший путь: используйте pkg-конфигурация Install pkg-config :

pkg-config --cflags python

Это произведет флаги, которые должны быть переданы GCC для компиляции приложений, которые используют заголовки Python и библиотеки.

При соединении, используйте вывод этой команды для включения соответствующих библиотек:

pkg-config --libs python

Вы могли даже объединить оба шага с:

gcc `pkg-config --cflags --libs python` sourcefile.c
7
ответ дан 23 November 2019 в 03:32

Другие вопросы по тегам:

Похожие вопросы: