2017-09-02 4 views
1

Je suis tout à fait nouveau à la programmation Haskell et en train de créer mon premier projet approprié en utilisant Cabal j'ai rencontré une erreur.Cabal installer erreur de liaison

J'ai suivi le tutoriel this lors de la structuration du projet. Cependant, quand je suis arrivé à l'étape où je devais entrer cabal install -j je suis l'erreur suivante:

cabal: Entering directory '.' 
Configuring CabalTest-0.1.0.0... 
Building CabalTest-0.1.0.0... 
Preprocessing executable 'CabalTest' for CabalTest-0.1.0.0... 
Linking dist/dist-sandbox-fe048ba8/build/CabalTest/CabalTest ... 
/usr/bin/ld: cannot find -lHSbase-4.9.1.0 
/usr/bin/ld: cannot find -lHSinteger-gmp-1.0.0.1 
/usr/bin/ld: cannot find -lHSghc-prim-0.5.0.0 
/usr/bin/ld: cannot find -lHSrts 
collect2: error: ld returned 1 exit status 
`gcc' failed in phase `Linker'. (Exit code: 1) 
cabal: Leaving directory '.' 

J'ai essayé de courir cabal install base integer-gmp ghc-prim rts --reinstall, auquel il répond qu'il ne peut pas trouver rts. Quand je la commande modifié pour exclure rts au lieu ce émis:

cabal: Could not resolve dependencies: 
next goal: base (user goal) 
rejecting: base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, 
base-4.8.1.0, base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, 
base-4.6.0.1, base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, 
base-4.4.0.0, base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, 
base-4.2.0.0, base-4.1.0.0, base-4.0.0.0 (only already installed instances can 
be used) 
rejecting: base-3.0.3.2 (conflict: base => base>=4.0 && <4.3) 
rejecting: base-3.0.3.1 (conflict: base => base>=4.0 && <4.2) 
Dependency tree exhaustively searched. 

Note: when using a sandbox, all packages are required to have consistent 
dependencies. Try reinstalling/unregistering the offending packages or 
recreating the sandbox. 

L'exécution cabal update n'a pas aidé et changer le répertoire ~/.cabal/fichier de configuration pour inclure user-install: False ne rien faire non plus.

Répondre

2

J'ai résolu le problème. Il s'est avéré que le problème était dû au paquet GHC que j'avais reçu via pacman (j'utilise arch linux). Le problème ici est que chaque fois que GHC essaie de lier des bibliothèques, il le fait de façon statique. Cependant, le paquet pacman pour GHC n'inclut aucune des bibliothèques statiques nécessaires. Pour résoudre le problème, j'ai dû installer un paquet séparé appelé ghc-static qui incluait toutes les bibliothèques statiques.