উত্তর:
সাইগউইনে আমি কীভাবে মাছ সংকলন করতে পেরেছি তা এখানে ।
প্রথমে আমাদের নিচের সাইগউইন প্যাকেজ রয়েছে তা নিশ্চিত করুন:
libncurses-devel
libiconv
autoconf
(আসলেই মাছের নির্ভরতা নয়, তবে পরবর্তী ধাপের জন্য আমাদের এটি প্রয়োজন)এরপরে, 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
না। সমস্যাটি পেতে আমরা এর জন্য চেকটি সরিয়ে ফেলি (আমরা পরে lib নির্দিষ্ট করে দেব)। এটি করার জন্য, আমরা configure.ac
চেকগুলি সম্পাদনা করি এবং মুছে ফেলি iconv_open
। iconv_open
3 ঘটনা প্রকাশিত জন্য অনুসন্ধান ; আমরা তাদের সব মন্তব্য। সুতরাং, থেকে:
AC_SEARCH_LIBS( iconv_open, iconv, ....)
আমরা এতে পরিবর্তন করি:
#AC_SEARCH_LIBS( iconv_open, iconv, ....)
./configure
এরপরে, আমরা ./configure
স্ক্রিপ্টটি পুনরায় তৈরি করে autoconf
চালিত করে কনফিগার স্ক্রিপ্টটি চালাব:
$ autoconf && ./configure
Makefile
সঠিক পথ অন্তর্ভুক্ত করতে সম্পাদনা করুনcurses.h
আরেকটি সমস্যার মুখোমুখি হলাম curses.h
- জিসিসি এটি খুঁজে পেল না। একটি দ্রুত অনুসন্ধানে এটি প্রকাশিত হয়েছে /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/
দেখতে পারেন এবং এটি আছে কিনা?
গিটহাব-এ মাছের সমস্যাগুলি # 680 এবং # 319 পরীক্ষা করে দেখুন, সাইগউইনে আপনার মাছের সংকলনের জন্য যা যা প্রয়োজন তা রয়েছে।
#define HAVE_NCURSES_H 1
উত্পন্ন হেডার ফাইলটিতেও যুক্ত করেছিconfig.h
(উপরে উল্লিখিত একই কারণে)