जवाबों:
यहाँ बताया गया है कि मैं सिग्विन में मछली संकलित करने में कैसे कामयाब रहा ।
पहले, सुनिश्चित करें कि हमारे पास निम्नलिखित साइबर पैकेज हैं:
libncurses-devellibiconvautoconf (मछली की वास्तव में निर्भरता नहीं है, लेकिन हमें बाद के कदम के लिए इसकी आवश्यकता है)इसके बाद, http://fishshell.com से नवीनतम स्रोत डाउनलोड करें (मैंने मछली का इस्तेमाल किया -1.23.1 . tar.gz )। अपनी पसंद की सीडी के लिए स्रोत निकालें और इसे सीडी:
$ tar zxvf fish-1.23.1.tar.gz -C /usr/local/src/
$ cd /usr/local/src/fish-1.23.1/
configure.acचेक को हटाने के लिए संपादित करेंiconvअब किसी कारण से, ठीक से ./configureपता नहीं लगा सकते libiconv। इस समस्या को हल करने के लिए हम इसके लिए चेक निकालते हैं (हम बाद में लिबरल रूप से निर्दिष्ट करेंगे)। ऐसा करने के लिए, हम configure.acचेक को संपादित करते हैं और हटाते हैं iconv_open। के लिए खोज iconv_open3 आवृत्तियां का पता चलता है; हम उन सभी को टिप्पणी करते हैं। तो, इससे:
AC_SEARCH_LIBS( iconv_open, iconv, ....)
हम इसमें परिवर्तन करते हैं:
#AC_SEARCH_LIBS( iconv_open, iconv, ....)
./configureइसके बाद, हम ./configureस्क्रिप्ट को autoconfफिर से बनाते हैं, फिर कॉन्फ़िगर स्क्रिप्ट चलाते हैं:
$ autoconf && ./configure
Makefileसही पथ को शामिल करने के लिए संपादित करेंcurses.hएक और समस्या जिसका मुझे सामना करना पड़ा curses.h- gcc उसे नहीं मिला। एक त्वरित खोज से पता चला कि यह अंदर है /usr/include/ncurses।
Makefileएक हार्डकोडेड में इसके लिए पथ शामिल है CFLAGS, लेकिन यह के लिए अंक /usr/local/include/ncursesके बजाय।
इसलिए, हम संपादित करते हैं Makefileऔर बदलते हैं:
CFLAGS = -I/usr/local/include/ncurses -std=c99 ....
सेवा
CFLAGS = -I/usr/include/ncurses -std=c99 ...
LDFLAGSलिंक करने के लिए निर्यात करें libiconv, और हम संकलित / स्थापित करने के लिए तैयार हैं।अंत में, हम LDFLAGSलिंक iconvकरने और फिर संकलित करने के लिए आवश्यक निर्यात करते हैं !
$ export LDFLAGS="-liconv"
$ make && make install
fish$ fish
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
me@home /u/l/s/fish-1.23.1>
translate_color': set_color.c:116: warning: implicit declaration of function strcasecmp 'set_color.c: फ़ंक्शन में main': set_color.c:333: error: ERR' अघोषित नहीं है (इस समारोह में पहली बार उपयोग करें)
libncurses-develपरिवर्तित -Iमार्ग को स्थापित और बदल दिया है ?
curses.hशामिल नहीं किया जा रहा है ( ERRवहाँ परिभाषित किया गया है)। क्या आपके पास एक झांकना है /usr/include/ncurses/और देख सकते हैं कि क्या यह वहां है?
GitHub में मछली के मुद्दों # 680 और # 319 की जाँच करें , वहाँ सब कुछ है जो आपको साइबरविन पर मछली संकलन करने की आवश्यकता है।
#define HAVE_NCURSES_H 1जेनरेट की गई हेडर फ़ाइलconfig.h(ऊपर बताए गए समान कारणों के लिए) में भी जोड़ा