Ich habe versucht, Haskell Platform und cabal-install
unter Linux in User-Space auf einem System zu installieren, auf dem das GNU Multi-Precision-Paket (GMP) nicht installiert ist.
Ich habe GHC-6.12.1 installiert und GHCi funktioniert, indem ich LB_LIBRARY_PATH
so eingerichtet habe, dass es auf das Verzeichnis lib verweist, in dem ich GMP installiert habe. Im nächsten Schritt kam es jedoch zu Problemen mit cabal-install
. Es versuchte weiterhin (statisch) mit GMP zu verlinken.
Dies schlägt fehl, weil der GMP nicht im System installiert ist und ld
keine Ahnung hat, wo die Bibliotheken zu finden sind, und es gibt keine Umgebungsvariable (die mir bekannt ist), die ld mitteilen kann, wo sie zu finden ist Benutzer-installierter GMP und (scheinbar) keine Möglichkeit, Cabal zu konfigurieren, das relevante -L
-Flag zu liefern.
Nach vielen ergebnislosen Such- und Hackerversuchen kam ich auf die absurd einfache Idee, mein eigenes Shell-Skript ld
zu installieren, das das System ld
mit dem entsprechenden -L
-Flag aufruft.
Dies ist natürlich Shell-Skripting 101:
%Vor% Wenn dieses Skript in einem Verzeichnis auf meinem PATH
vor /usr/bin
installiert ist, scheinen alle Probleme verschwunden zu sein.
Grundsätzlich funktioniert Ihr Ghc noch nicht. Ja, es kann Dinge kompilieren, aber es kann keine Programme verbinden, weil es sie mit gmp verknüpfen muss.
Was wir tun können, ist ein Kernpaket, z. Das RTS-Paket, so dass GhC immer das richtige -L
-Flag verwendet:
Tags und Links haskell ghc cabal haskell-platform gmp