Risposte:
Ecco come sono riuscito a compilare il pesce in Cygwin.
Innanzitutto, assicurati di avere i seguenti pacchetti cygwin:
libncurses-devellibiconvautoconf (non è una dipendenza dei pesci, ma ne abbiamo bisogno per un passaggio successivo)Quindi, scarica l'ultima fonte da http://fishshell.com (ho usato fish-1.23.1.tar.gz ). Estrai la fonte nella tua directory di scelta e cd ad essa:
$ tar zxvf fish-1.23.1.tar.gz -C /usr/local/src/
$ cd /usr/local/src/fish-1.23.1/
configure.acper rimuovere i controlli periconvOra per qualche motivo, ./configurenon è possibile rilevare libiconvcorrettamente. Per aggirare il problema rimuoviamo il controllo per esso (specificeremo manualmente la lib in seguito). Per fare ciò, modifichiamo configure.ace rimuoviamo i controlli per iconv_open. La ricerca di iconv_openrivela 3 occorrenze; li commentiamo tutti. Quindi, da:
AC_SEARCH_LIBS( iconv_open, iconv, ....)
Passiamo a:
#AC_SEARCH_LIBS( iconv_open, iconv, ....)
./configureSuccessivamente, ricostruiamo lo ./configurescript eseguendo ed autoconfeseguendo lo script configure:
$ autoconf && ./configure
Makefileper includere il percorso corretto acurses.hUn altro problema che ho dovuto affrontare era curses.h: gcc non riusciva a trovarlo. Una rapida ricerca ha rivelato che è dentro /usr/include/ncurses.
Il Makefileha un hardcoded includono percorso in CFLAGS, ma che punti a /usr/local/include/ncursesposto.
Quindi, modifichiamo Makefilee cambiamo:
CFLAGS = -I/usr/local/include/ncurses -std=c99 ....
per
CFLAGS = -I/usr/include/ncurses -std=c99 ...
LDFLAGSper collegarti libiconve siamo pronti per compilare / installare.Infine, esportiamo il necessario LDFLAGSper il collegamento iconv, quindi compiliamo e installiamo!
$ 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: nella funzione main': set_color.c:333: error: ERR' non dichiarato (primo utilizzo in questa funzione)
libncurses-devele modificato il -Ipercorso modificato nel `Makefile (passaggio 5)?
curses.hnon sia incluso ( ERRè definito lì). Puoi dare un'occhiata /usr/include/ncurses/e vedere se è lì?
Controlla i problemi di pesce # 680 e # 319 su GitHub, c'è tutto il necessario per compilare il pesce su Cygwin.
#define HAVE_NCURSES_H 1il file di intestazione generatoconfig.h(per gli stessi motivi indicati sopra)