2011-11-28 17 views
7

Me refiero al haskell readline library wrapper al c readline library.¿Cómo instalas la librería haskell readline en Mac OSX?

cabal install readline de salida a continuación:

$ cabal install readline 
Resolving dependencies... 
Configuring readline-1.0.1.0... 
checking for gcc... gcc 
checking for C compiler default output file name... a.out 
checking whether the C compiler works... yes 
checking whether we are cross compiling... no 
checking for suffix of executables... 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether gcc accepts -g... yes 
checking for gcc option to accept ISO C89... none needed 
checking for GNUreadline.framework... checking for readline... no 
checking for tputs in -lncurses... yes 
checking for readline in -lreadline... yes 
checking for rl_readline_version... yes 
checking for rl_begin_undo_group... no 
configure: error: readline not found, so this package cannot be built 
See `config.log' for more details. 
cabal: Error: some packages failed to install: 
readline-1.0.1.0 failed during the configure step. The exception was: 
ExitFailure 1 

que tiene la biblioteca readline c instalado a través de macports (utilizando sudo port install readline), pero sigo teniendo el mismo error al intentar instalar la biblioteca readline Haskell.

+0

http://www.haskell.org/cabal/FAQ.html – tekknolagi

+0

Si instaló 'readline' con' port', ¿por qué necesita intentar instalarlo con 'cabal'? – tekknolagi

+1

La biblioteca 'readline' c está instalada con el puerto, pero no puedo instalar la biblioteca' readline' haskell. He aclarado la pregunta para dejarlo en claro. –

Respuesta

20

Si la instalación de MacPorts utiliza las rutas predeterminadas de los archivos instalados, intente especificar dónde buscar las cabeceras C y bibliotecas:

cabal install readline --extra-include-dirs=/opt/local/include \ 
--extra-lib-dirs=/opt/local/lib 

actualización 2x ​​: En mi máquina con GNU Readline instalado a través de Homebrew en vez que MacPorts, parece que el script configure para la biblioteca Haskell readline necesita algunos indicadores no estándar para encontrar adecuadamente sus orientaciones. Si lo anterior no funciona, intente lo siguiente:

cabal install readline --extra-include-dirs=/opt/local/include \ 
--extra-lib-dirs=/opt/local/lib \ 
--configure-option=--with-readline-includes=/opt/local/include \ 
--configure-option=--with-readline-libraries=/opt/local/lib 
+3

Gracias, lo tengo funcionando. Usé el comando: 'sudo port install readline + universal' para instalar readline, y el comando' cabal install readline --extra-include-dirs =/opt/local/include --extra-lib-dirs =/opt/local/lib --configure-option = - with-readline-includes =/opt/local/include --configure-option = - with-readline-libraries =/opt/local/lib' para instalar la librería haskell readline. –

+0

Por supuesto; necesita tener ambos para vincularse contra una vez que 'configure' se haya ejecutado. Actualizado para reflejar el último bocado de un comando – acfoltzer

+9

La fórmula readline solo es barril, por lo tanto, tuve que agregar la ruta completa al barril, así: 'cabal install readline --extra-include-dirs =/usr/local/Cellar/readline /6.2.4/include/ --extra-lib-dirs =/usr/local/Cellar/readline/6.2.4/lib/--configure-option = - con-readline-includes =/usr/local/Cellar /readline/6.2.4/include/ --configure-option = - with-readline-libraries =/usr/local/Cellar/readline/6.2.4/lib/' – liborw

1

que acabó siguiendo las instrucciones aquí http://fp.okeefecreations.com/2010/08/installing-haskell-bindings-to-readline.html con el fin de conseguir que funcione en mi instalación de homebrew de readline. La única modificación que tuve que hacer fue ajustar la versión de readline en la ruta.

Sé que esta es una solución similar a la de los acfoltzer pero no tengo el representante para agregar un comentario allí o tampoco me imagino cómo hacer un comentario. :)

+1

$ cabal install readline --configure-option = - with-readline-libraries = "/ usr/local/Cellar/readline/6.2.4/lib" --configure-option = - with-readline-includes = " /usr/local/Cellar/readline/6.2.4/include "Para obtener el último –

+0

El enlace en su respuesta está roto. –