回答:
Cygwinで魚をコンパイルする方法は次のとおりです。
まず、次のcygwinパッケージがあることを確認します。
libncurses-devellibiconvautoconf (実際には魚の依存関係ではありませんが、後のステップで必要です)次に、http://fishshell.comから最新のソースをダウンロードします(fish-1.23.1.tar.gzを使用しました)。選択したディレクトリにソースを抽出し、cdしてください:
$ 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_open3つの出現が明らかになります。それらをすべてコメントアウトします。だから、から:
AC_SEARCH_LIBS( iconv_open, iconv, ....)
変更先:
#AC_SEARCH_LIBS( iconv_open, iconv, ....)
./configure次に、./configure実行してスクリプトを再構築しautoconf、configureスクリプトを実行します。
$ autoconf && ./configure
Makefile正しいパスを含むように編集するcurses.h私が直面した別の問題は、curses.hgccが見つけられなかったことです。クイック検索で、それがにあることが明らかになりました/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パスをインストールして変更しましたか(ステップ5)?
curses.hは含まれていません(ERRそこで定義されています)。覗いて、/usr/include/ncurses/そこにあるかどうかを確認できますか?
#define HAVE_NCURSES_H 1、生成されたヘッダーファイルに追加しましたconfig.h(上記と同じ理由で)