GCC가 아닌 locate로 찾은 Python.h


12

방금 간단한 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시스템에 헤더 파일 이 있다는 것이 분명 합니다. 실행 파일을 작동 시키려면 어떻게합니까?


askubuntu에 오신 것을 환영합니다! 내가 틀렸다면 나를 수정하지만 컴파일러가 작업 디렉토리에 없으며 전체 경로가 지정되지 않았기 때문에 컴파일러가 Python.h를 찾지 못한다고 가정합니다.
Geek

답변:


18

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

#include <python2.7/Python.h>

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

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

7

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

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

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

pkg-config --cflags 파이썬

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

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

pkg-config --libs 파이썬

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

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

"gcc -c -I ..."후에 확장자가 .o 인 파일 만 있는데 실행 파일을 어떻게 얻을 수 있습니까?
RS

@RS 당신은 그것을 연결해야합니다, 다음과 같은 일을 시도하십시오 :"gcc file.o -o program"
Nathan Osman

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.