2011-06-30 9 views
13

का उपयोग कर रहा है मैंने अभी ncurses की खोज की है और अभी इसे सीखना शुरू कर दिया है, हालांकि मेरे ट्यूटोरियल में उदाहरण मेरे कंप्यूटर पर संकलित नहीं हैं।सी/सी ++ कोड को संकलित करने में सक्षम नहीं है जो ncurses

मुझे मैन्युअल रूप से ncurses इंस्टॉल करना पड़ा और "apt-get install libncurses5-dev libncursesw5-dev" दर्ज करके ऐसा किया गया। मुझे ऐसा करना था क्योंकि ऐसा करने से पहले मुझे एक त्रुटि मिली कि मैं "# शामिल नहीं" कर सकता था।

यह स्थापित कर रहा है काम किया, लेकिन अब मैं बजाय यह त्रुटि प्राप्त: क्यों मैं इस त्रुटि मिलती है

#include <ncurses.h> 
int main(){ 
    initscr(); 
    printw("Hai thar world..."); 
    refresh(); 
    getch(); 
    endwin(); 

    return 0; 
} 

: इस तरह

[email protected]:~/learning_ncurses$ g++ -o hello_world hello_world.cpp 
/tmp/ccubZbvK.o: In function `main': 
hello_world.cpp:(.text+0xa): undefined reference to `initscr' 
hello_world.cpp:(.text+0x16): undefined reference to `printw' 
hello_world.cpp:(.text+0x1b): undefined reference to `refresh' 
hello_world.cpp:(.text+0x20): undefined reference to `stdscr' 
hello_world.cpp:(.text+0x28): undefined reference to `wgetch' 
hello_world.cpp:(.text+0x2d): undefined reference to `endwin' 
collect2: ld returned 1 exit status 

कोड मैं संकलित दिखता है। और इससे भी महत्वपूर्ण बात यह है कि मैं इसे कैसे ठीक करूं?

उत्तर

30

आप ncurses पुस्तकालय

g++ -o hello_world hello_world.cpp -lncurses 
+0

मैं काफी सी के लिए नया हूँ लिंक करने ++ तो इस अवधारणा मेरे लिए नया है। क्या मैं हमेशा ऐसा करना चाहता हूं जब भी मैं लाइब्रेरी का उपयोग कर रहा हूं संकलक में शामिल नहीं है? – Touzen

+3

हां। हेडर फ़ाइल आपके कोड में कॉल करने के लिए फ़ंक्शन घोषणा से मिलान करके आपके कोड को संकलित करने की अनुमति देती है। लिंकर का काम * आपके प्रोग्राम में उपयोग किए जाने वाले प्रत्येक फ़ंक्शन के लिए * वास्तविक रननेबल कोड * ढूंढना है, और यह लिंक-टाइम पर encapsulating लाइब्रेरी नाम निर्दिष्ट करने के साथ-साथ अपने कोड के लिए ऑब्जेक्ट फ़ाइलें निर्दिष्ट करके है। –

+0

बिल्कुल - आपको सभी पुस्तकालयों, यहां तक ​​कि मानक वाले लोगों से लिंक करने की आवश्यकता है। –

संबंधित मुद्दे