Python.h को GCC द्वारा नहीं बल्कि ढूँढा गया है


12

मैंने सिर्फ यह जांचने के लिए एक साधारण सी निष्पादन योग्य लिखा है कि 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.hस्थापित किया गया है या नहीं locate

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

यह मेरे लिए स्पष्ट है कि मेरे पास Python.hमेरे सिस्टम पर हेडर फ़ाइल है। मुझे अपना निष्पादन योग्य काम कैसे मिलेगा?


Askubuntu में आपका स्वागत है! अगर मैं गलत हूं तो मुझे सुधारें, लेकिन मैं यह मान लूंगा कि कंपाइलर पायथन को नहीं ढूंढ रहा है। इसलिए क्योंकि यह आपके वर्किंग डायरेक्टरी में नहीं है और पूरा रास्ता निर्दिष्ट नहीं किया गया है।
एल्डर गीक

जवाबों:


18

आपको अपने शामिल करने की योग्यता चाहिए

#include <python2.7/Python.h>

या बताओ कि जहां पायथन को खोजने के लिए। साथ

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

7

आपको Python.hशीर्ष लेख के लिए शामिल पथ के साथ GCC प्रदान करना होगा । यह -Iध्वज के साथ किया जा सकता है :

gcc -c -I / usr / / python2.7 sourcefile.c शामिल हैं

हालांकि, एक बेहतर तरीका है: pkg-config काPkg-config इंस्टॉल करें उपयोग करें :

pkg-config - cflags अजगर

यह उन झंडों का उत्पादन करेगा, जिन्हें जीसीसी को पारित करने की आवश्यकता है ताकि पायथन हेडर और पुस्तकालयों का उपयोग करने वाले अनुप्रयोगों को संकलित किया जा सके।

लिंक करते समय, उपयुक्त पुस्तकालयों को शामिल करने के लिए इस कमांड के आउटपुट का उपयोग करें:

pkg-config --libs पायथन

तुम भी दोनों चरणों के साथ गठबंधन कर सकते हैं:

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

"Gcc -c -I ..." के बाद मुझे केवल .o एक्सटेंशन के साथ फाइल मिली है, मैं एक निष्पादन योग्य फ़ाइल कैसे प्राप्त कर सकता हूं?
RS

@RS आपको इसे लिंक करने की आवश्यकता है, कुछ इस तरह से करने की कोशिश करें:"gcc file.o -o program"
नाथन उस्मान

कृपया इसे देखें: askubuntu.com/questions/706471/undefined-references-with-cython
RS
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.