2016-08-20 2 views
1

J'essaie d'utiliser la pile Haskell (lts-6.12 resolver) pour configurer et exécuter un small demo program pour Chart. J'ai créé le projet avec stack new, stack init, etc., puis modifié le Main.hs généré, en ajoutant le code de démonstration. J'ai également ajouté les paquets Chart et Chart-cairo au fichier .cabal et j'ai exécuté stack build. Beaucoup et beaucoup de paquets installés, y compris graphique et graphique-caire, à en juger par la sortie, et quand il a finalement été fait, il essayé de compiler Main.hs, mais a échoué avec les erreurs suivantes:La pile ne peut pas trouver Chart ou Chart-cairo, bien que le fichier cabal les appelle

/home/asdf/my-project/app/Main.hs:4:8: 
Could not find module ‘Graphics.Rendering.Chart.Easy’ 
It is a member of the hidden package ‘[email protected]_Cz416CvPROo70VikOoIoki’. 
Perhaps you need to add ‘Chart’ to the build-depends in your .cabal file. 
Use -v to see a list of the files searched for. 

/home/asdf/my-project/app/Main.hs:5:8: 
Could not find module ‘Graphics.Rendering.Chart.Backend.Cairo’ 
It is a member of the hidden package ‘[email protected]_I1HGJHEm7pvIiSoYgOrXbq’. 
Perhaps you need to add ‘Chart-cairo’ to the build-depends in your .cabal file. 
Use -v to see a list of the files searched for. 

Comment peut empiler être chargement de ces paquets avec succès, puis être en quelque sorte incapable de les trouver plus tard? Comment peut-il avoir le nerf (jk) pour me demander de mettre les dépendances dans mon fichier .cabal, alors qu'il les a déjà obtenues de là pour les charger en premier lieu?

Voici la liste des dépendances:

$ stack list-dependencies 
Chart 1.6 
Chart-cairo 1.6 
StateVar 1.1.0.4 
adjunctions 4.3 
array 0.5.1.0 
base 4.8.2.0 
base-orphans 0.5.4 
bifunctors 5.2 
binary 0.7.5.0 
bytestring 0.10.6.0 
cairo 0.13.1.1 
colour 2.3.3 
comonad 4.2.7.2 
containers 0.5.6.2 
contravariant 1.4 
data-default-class 0.0.1 
deepseq 1.4.1.1 
distributive 0.5.0.2 
exceptions 0.8.3 
filepath 1.4.0.0 
free 4.12.4 
ghc-prim 0.4.0.0 
hashable 1.2.4.0 
hmatrix 0.17.0.2 
integer-gmp 1.0.0.0 
kan-extensions 4.2.3 
lens 4.13 
machine-learning 0.1.0.0 
mtl 2.2.1 
old-locale 1.0.0.7 
operational 0.2.3.3 
parallel 3.2.1.0 
prelude-extras 0.4.0.3 
primitive 0.6.1.0 
profunctors 5.2 
random 1.1 
reflection 2.1.2 
semigroupoids 5.0.1 
semigroups 0.18.1 
split 0.2.3.1 
stm 2.4.4.1 
storable-complex 0.2.2 
tagged 0.8.4 
template-haskell 2.10.0.0 
text 1.2.2.1 
time 1.5.0.1 
transformers 0.4.2.0 
transformers-compat 0.4.0.4 
unordered-containers 0.2.7.1 
utf8-string 1.0.1.1 
vector 0.11.0.0 
void 0.7.1 
+1

Pouvez-vous montrer votre fichier .cabal? – ErikR

+0

Avez-vous une strophe 'executable' ou une section' library' ou les deux? – ErikR

+0

@ErikR Je viens de comprendre cela après que vous ayez demandé le fichier de cabale et je suis allé anonymiser, lol. C'est en effet une confusion de strophes. Je ne m'attendais pas à plus d'un alors j'ai simplement ajouté les dépendances au premier '' build-depends'' que j'ai vu. Si vous concoctez une sorte de réponse à cet effet, je l'accepterai. Merci! – nclark

Répondre

2

Si vous avez à la fois une strophe executable et library, essayez liste les dépendances dans les deux. Si votre exécutable dépend de ces dépendances mais que vous les avez seulement répertoriées dans votre section de bibliothèque, vous obtiendrez cette erreur - les différentes sections sont indépendantes les unes des autres.

+0

désolé pas plus de points à offrir, je suis un SO pauvre! – nclark