Instalé recientemente (desde los instaladores binarios) GHC 6.12 y el Haskell Platform 2010.1.0.1 en mi MacBook Intel con OS X 10.5.8, y al principio, todo funcionó bien. Editar: Tuve que instalar cabal
, alex
y happy
desde la fuente, pero después de que, todo parecía funcionar bien. Sin embargo, he descubierto que si uso cabal install
instalar un paquete que depende de una biblioteca MacPorts (por ejemplo, cabal install --extra-lib-dirs=/opt/local/lib --extra-include-dirs=/opt/local/include gd
), las cosas funcionan bien en GHCi, pero si intento compilar, me sale el errorGHC 6.12 y MacPorts
Linking test ...
Undefined symbols:
"_iconv_close", referenced from:
_hs_iconv_close in libHSbase-4.2.0.0.a(iconv.o)
"_iconv", referenced from:
_hs_iconv in libHSbase-4.2.0.0.a(iconv.o)
"_iconv_open", referenced from:
_hs_iconv_open in libHSbase-4.2.0.0.a(iconv.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Después de buscar en Google, encontré a long Haskell-cafe thread discutiendo este problema. El resultado parece ser MacPorts installs an updated version of libiconv, y la interfaz binaria es ligeramente diferente de la versión incluida con el sistema. En consecuencia, si intenta vincularse con cualquier biblioteca de MacPorts, MacPorts libiconv también se vincula; y como la biblioteca base se creó para enlazarse con una versión diferente de libiconv, las cosas se rompen. He intentado setting LD_LIBRARY_PATH
and DYLD_LIBRARY_PATH
y agregué más banderas para intentar que vuelva a mirar /usr/lib
(por ejemplocabal install --extra-lib-dirs=/opt/local/lib --extra-include-dirs=/opt/local/include --extra-lib-dirs=/usr/lib --extra-include-dirs=/usr/include gd
), pero ninguno funcionó. La desinstalación de MacPorts libiconv
no es realmente una opción, ya que tengo varios puertos instalados que dependen de él, incluidos algunos puertos a los que quiero que se conecte Haskell, como gd2
.
Por lo que he visto en línea, el resultado realmente parece ser "Estás desanimado": no se puede vincular con ninguna biblioteca MacPorts mientras se compila con GHC, y no parece haber una solución. Sin embargo, ese hilo era de finales de 2009, así que creo que hay una posibilidad de que alguien tenga una solución, una solución alternativa, un hack ridículo ... cualquier cosa, de verdad. Entonces: ¿Alguien sabe cómo hacer que GHC 6.12 se vincule con el sistema libiconv al mismo tiempo que se vincula a bibliotecas desde MacPorts? O, en su defecto, una forma de hacer que el enlace no rompa de alguna otra forma inteligente?
¿Ha instalado la Plataforma Haskell binario, o los DarwinPorts construir? O la construcción de la fuente? –
Instaladores binarios para GHC y la plataforma Haskell. Editaré la pregunta para reflejar eso. –
Obtengo exactamente este problema con un GHC 6.12.3 que he creado desde la fuente. –