Réponses:
Voici comment j'ai réussi à compiler du poisson dans Cygwin.
Tout d'abord, assurez-vous que nous avons les packages cygwin suivants:
libncurses-devellibiconvautoconf (pas vraiment une dépendance du poisson, mais nous en avons besoin pour une étape ultérieure)Ensuite, téléchargez la dernière source sur http://fishshell.com (j'ai utilisé fish-1.23.1.tar.gz ). Extrayez la source dans votre répertoire de choix et cd-y:
$ tar zxvf fish-1.23.1.tar.gz -C /usr/local/src/
$ cd /usr/local/src/fish-1.23.1/
configure.acpour supprimer les chèquesiconvMaintenant, pour une raison quelconque, ./configurene peut pas détecter libiconvcorrectement. Pour contourner le problème, nous supprimons la vérification (nous spécifierons la bibliothèque manuellement plus tard). Pour ce faire, nous éditons configure.acet supprimons les chèques iconv_open. La recherche de iconv_openrévèle 3 occurrences; nous les commentons tous. Donc, à partir de:
AC_SEARCH_LIBS( iconv_open, iconv, ....)
Nous changeons pour:
#AC_SEARCH_LIBS( iconv_open, iconv, ....)
./configureEnsuite, nous reconstruisons le ./configurescript en exécutant autoconfpuis exécutons le script de configuration:
$ autoconf && ./configure
Makefilepour inclure le chemin correct verscurses.hUn autre problème que j'ai rencontré était curses.h- gcc n'a pas pu le trouver. Une recherche rapide a révélé que c'était le cas /usr/include/ncurses.
Le Makefilepossède un chemin d'inclusion codé en dur CFLAGS, mais il pointe à la /usr/local/include/ncursesplace.
Donc, nous éditons Makefileet changeons:
CFLAGS = -I/usr/local/include/ncurses -std=c99 ....
à
CFLAGS = -I/usr/include/ncurses -std=c99 ...
LDFLAGSpour créer un lien libiconvet nous sommes prêts à compiler / installer.Enfin, nous exportons le nécessaire LDFLAGSpour créer un lien iconv, puis compilons et installons!
$ 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: Dans la fonction main': set_color.c:333: error: ERR' non déclaré (première utilisation dans cette fonction)
libncurses-develet modifié le -Ichemin modifié dans le `Makefile (étape 5)?
curses.hn'est pas inclus ( ERRest défini ici). Pouvez-vous jeter un coup d'œil /usr/include/ncurses/et voir s'il est là?
Vérifiez les problèmes de poisson # 680 et # 319 sur GitHub, il y a tout ce dont vous avez besoin pour compiler du poisson sur cygwin.
#define HAVE_NCURSES_H 1dans le fichier d'en-tête généréconfig.h(pour les mêmes raisons que celles mentionnées ci-dessus)