मेरे ओपनएसयूएसई 12.3 बॉक्स पर एनसीआरएस स्थापित के साथ libcurses के लिए कोई लिंक नहीं हैं। कोई भी सी प्रोग्राम जो -lcurses ध्वज का उपयोग करने का प्रयास करता है तब तक विफल हो जाएगा जब तक आप ध्वज को -lncurses में परिवर्तित नहीं करते।
OpenSUSE 12.3 > ls -al /usr/lib64/*curses*
-rw-r--r-- 1 root root 2225910 Jan 25 2013 /usr/lib64/libncurses.a
-rw-r--r-- 1 root root 780540 Jan 25 2013 /usr/lib64/libncurses++.a
-rw-r--r-- 1 root root 69 Jan 25 2013 /usr/lib64/libncurses.so
-rw-r--r-- 1 root root 782884 Jan 25 2013 /usr/lib64/libncurses++w.a
-rw-r--r-- 1 root root 2768222 Jan 25 2013 /usr/lib64/libncursesw.a
-rw-r--r-- 1 root root 70 Jan 25 2013 /usr/lib64/libncursesw.so
लिंक भी फेडोरा 17 याद कर रहे हैं हालांकि, उबंटू 13.04 पर लिंक मौजूद हैं:
Ubuntu 13.04 > ls -al /usr/lib/x86_64-linux-gnu/*curses*
lrwxrwxrwx 1 root root 12 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libcurses.a -> libncurses.a
lrwxrwxrwx 1 root root 13 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libcurses.so -> libncurses.so
-rw-r--r-- 1 root root 294180 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libncurses.a
-rw-r--r-- 1 root root 158798 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libncurses++.a
-rw-r--r-- 1 root root 31 Feb 8 2013 /usr/lib/x86_64-linux-gnu/libncurses.so
तो -lcurses साथ संकलन OpenSUSE और फेडोरा पर असफल हो जायेगी लेकिन Ubuntu पर काम करते हैं। -lncurses के साथ संकलन सभी तीन distros के लिए काम करेगा।
टेकवे: यदि आप अपने कोड को विभिन्न लिनक्स डिस्ट्रोज़ पर संकलित करना चाहते हैं, तो आपको -lncurses का उपयोग करना चाहिए।
स्रोत
2013-09-25 00:15:48
सोलारिस जैसे सिस्टम पर, libcurses.so मूल (यूनिक्स) श्राप लाइब्रेरी (या एक उन्नत शाप पुस्तकालय है, लेकिन जीएनयू libncurses लाइब्रेरी नहीं है)। लिनक्स सिस्टम पर, कोई फर्क नहीं पड़ता है। –
@ जोनाथन लेफ्लर: आईबीएम एईक्स जैसे अन्य प्लेटफार्मों के लिए, एनसीआरएस नहीं हैं लेकिन मूल या उन्नत शाप हैं। – Luciano