का उपयोग कर रहा है मैंने अभी 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
कोड मैं संकलित दिखता है। और इससे भी महत्वपूर्ण बात यह है कि मैं इसे कैसे ठीक करूं?
मैं काफी सी के लिए नया हूँ लिंक करने ++ तो इस अवधारणा मेरे लिए नया है। क्या मैं हमेशा ऐसा करना चाहता हूं जब भी मैं लाइब्रेरी का उपयोग कर रहा हूं संकलक में शामिल नहीं है? – Touzen
हां। हेडर फ़ाइल आपके कोड में कॉल करने के लिए फ़ंक्शन घोषणा से मिलान करके आपके कोड को संकलित करने की अनुमति देती है। लिंकर का काम * आपके प्रोग्राम में उपयोग किए जाने वाले प्रत्येक फ़ंक्शन के लिए * वास्तविक रननेबल कोड * ढूंढना है, और यह लिंक-टाइम पर encapsulating लाइब्रेरी नाम निर्दिष्ट करने के साथ-साथ अपने कोड के लिए ऑब्जेक्ट फ़ाइलें निर्दिष्ट करके है। –
बिल्कुल - आपको सभी पुस्तकालयों, यहां तक कि मानक वाले लोगों से लिंक करने की आवश्यकता है। –