2012-06-08 51 views
4

我的C代碼:gcc:無法找到Python.h,當它存在於/usr/includes/python2.7中?

#include<stdio.h> 
#include "Python.h" 

int main() 
{ 
    printf("Hello World"); 
    return 0; 
} 

我已經安裝了python2.7 python-dev。此外,Python.h可在/usr/include/python2.7

gcc myfile.c#Python.h:沒有這樣的文件或目錄

我甚至嘗試: gcc -L/usr/include/python2.7/ myfile.c#Python.h:沒有這樣的文件或目錄

我試圖建立一個Python C模塊中ujson與PIP是使用Python.h,它能夠編譯。

我在想什麼/做錯了什麼?

+2

使用-I代替-L,更好的解決方案:編寫一個makefile(是的,它需要一些研究,但是這個努力是值得的)。在命令行上編譯可能會很痛苦 – BigMike

+1

更好的是,如果此代碼是Python擴展:編寫一個'setup.py'文件並使用distutils。 –

回答

10

應該-I,不-L

gcc -I/usr/include/python2.7 myfile.c 
0

使用

#include <Python.h> 

,而不是

#include "Python.h" 

include頭文件。 Python.h文件應該是包含的第一個文件。

@see Extending Python with C or C++(第1.1注)

因爲Python可限定影響在某些系統 的標準頭一些預處理器的定義,則必須包括Python.h之前被包括 任何標準頭。