2016-08-29 2 views
0

J'obtiens une erreur lorsque je tente de construire un paquet Haskell qui dépend d'une bibliothèque C native, même si le fichier d'en-tête semble être à sa place. L'erreur indique:Bibliothèque native manquante pour construire un paquet Haskell avec Cabal, sous Linux

Missing (or bad) header file 

Quelle est la signification de cette erreur? Comment puis-je en savoir plus? Le fichier ne manque pas car je peux le trouver dans mon système, sous /usr/include/. J'ai essayé d'utiliser l'option --extra-include-dirs afin de pointer Cabal vers le fichier d'en-tête qui est présent dans mon système, mais j'obtiens toujours l'erreur. Donc, le fichier n'est pas manquant, comment peut-il être mauvais?

C'est vraiment une question générique sur la façon de résoudre ce genre de problèmes, mais voici les détails sur mon système:

  • package pour installer: zlib
  • tête manquant: zlib.h
  • tête position dans mon système: /usr/include/zlib.h
  • système d'Exploitation: Ubuntu 16,04

J'ai installé un package possible Ubuntu zlib-dev que je pourrais trouver, y compris les versions 32 bits

+1

Est-ce la seule erreur? Pouvez-vous exécuter une construction verbeuse? –

+2

Pourriez-vous fournir la sortie entière, y compris votre commande? Aussi, pensez à essayer d'installer juste zlib (ex: 'cabal install zlib') au lieu de construire n'importe quel projet plus grand que vous travaillez afin de réduire un peu la sortie. –

+0

J'ai Ubuntu 16.04.1 LTS. J'ai pu installer 'zlib'. J'ai le paquetage 'zlib1g-dev' installé. –

Répondre

2

Si vous augmentez la construction verbosité avec -v3 dire, vous obtiendrez des messages d'erreur du compilateur réels. Dans ce cas

/usr/include/zlib.h:34:19: fatal error: zconf.h: No such file or directory 

Un googler rapide du nom zlib.h révèle que c'est une Ubuntu bug ouverte confirmée.