¿Es posible usar la concha de pescado con cygwin? No pude compilar la fuente en cygwin, y no encontré ningún paquete precompilado. ¿Hay una buena razón para no tener peces en Cygwin?
fish shell 2.1.0 ahora es oficialmente compatible con Cygwin, es posible instalarlo utilizando el instalador predeterminado.
Así es como logré compilar pescado en Cygwin.
Primero, asegúrese de tener los siguientes paquetes de cygwin:
libncurses-devel
libiconv
autoconf
(no es realmente una dependencia del pescado, pero lo necesitamos para un paso posterior)Luego, descargue la última fuente de http://fishshell.com (utilicé fish-1.23.1.tar.gz ). Extraiga la fuente a su directorio de elección y cd a él:
$ tar zxvf fish-1.23.1.tar.gz -C /usr/local/src/
$ cd /usr/local/src/fish-1.23.1/
configure.ac
para eliminar cheques paraiconv
Ahora por alguna razón, ./configure
no se puede detectar libiconv
correctamente. Para solucionar el problema, eliminamos la verificación (especificaremos la lib manualmente más adelante). Para hacerlo, editamos configure.ac
y eliminamos cheques para iconv_open
. La búsqueda iconv_open
revela 3 ocurrencias; Los comentamos a todos. Entonces, de:
AC_SEARCH_LIBS( iconv_open, iconv, ....)
Cambiamos a:
#AC_SEARCH_LIBS( iconv_open, iconv, ....)
./configure
A continuación, reconstruimos el ./configure
script ejecutando y autoconf
luego ejecutamos el script de configuración:
$ autoconf && ./configure
Makefile
para incluir la ruta correcta acurses.h
Otro problema al que me enfrenté fue curses.h
: gcc no pudo encontrarlo. Una búsqueda rápida reveló que está dentro /usr/include/ncurses
.
El Makefile
tiene una trayectoria para hardcoded incluyen en CFLAGS
, pero señala que /usr/local/include/ncurses
en su lugar.
Entonces, editamos Makefile
y cambiamos:
CFLAGS = -I/usr/local/include/ncurses -std=c99 ....
a
CFLAGS = -I/usr/include/ncurses -std=c99 ...
LDFLAGS
para vincular libiconv
, y estamos listos para compilar / instalar.Finalmente, exportamos lo necesario LDFLAGS
para vincular iconv
, luego compilamos e instalamos.
$ 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>
#define HAVE_NCURSES_H 1
el archivo de encabezado generadoconfig.h
(por las mismas razones indicadas anteriormente)translate_color': set_color.c:116: warning: implicit declaration of function
strcasecmp 'set_color.c: En la funciónmain': set_color.c:333: error:
ERR' no declarado (primer uso en esta función)libncurses-devel
y cambiado la-I
ruta cambiada en el `Makefile (paso 5)?curses.h
no se incluye (ERR
se define allí). ¿Puedes echar un vistazo/usr/include/ncurses/
y ver si está allí?Verifique los problemas de pescado # 680 y # 319 en GitHub, hay todo lo que necesita para compilar pescado en cygwin.
fuente