GCC가 아닌 locate로 찾은 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.

그런 다음 python-devpython-dev 설치 패키지가 Python.h설치되어 있는지 확인했습니다 locate.

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

Python.h시스템에 헤더 파일 이 있다는 것이 분명 합니다. 실행 파일을 작동 시키려면 어떻게합니까?



답변

당신은 당신의 포함 자격이 필요합니다

#include <python2.7/Python.h>

또는 gcc에게 Python.h를 어디에서 찾을 수 있는지 알려주십시오.

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

답변

GCC에 Python.h헤더 의 포함 경로를 제공해야합니다 . 이 -I플래그를 사용하여 수행 할 수 있습니다 .

gcc -c -I / usr / include / python2.7 소스 파일 .c

그러나 더 좋은 방법이 있습니다 : pkg-config 사용 :

pkg-config --cflags 파이썬

파이썬 헤더와 라이브러리를 사용하는 응용 프로그램을 컴파일하기 위해 GCC에 전달해야하는 플래그를 출력합니다.

링크 할 때이 명령의 출력을 사용하여 적절한 라이브러리를 포함하십시오.

pkg-config --libs 파이썬

두 단계를 다음과 결합 할 수도 있습니다.

gcc`pkg-config --cflags --libs python` sourcefile.c