Mit GHC, cabal mit GMP im User-Space installiert

8

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.

    
chrisdornan 01.04.2010, 04:42
quelle

1 Antwort

10

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:

%Vor%     
Duncan Coutts 14.10.2010 07:41
quelle