2017-11-16 15 views
1
zu bauen

Ich habe die neuesten Pakete auf Bogen, ghc 8.2.1 und Kabale 2.0, versuchen ncurses Paket mit Kabalen zu bauen:ghc das Modul nicht finden kann es versucht

$ cabal configure 
Resolving dependencies... 
Configuring ncurses-0.2.16... 
$ cabal build 
Preprocessing library for ncurses-0.2.16.. 
Building library for ncurses-0.2.16.. 

<no location info>: error: 
    module ‘UI.NCurses’ cannot be found locally 

Das besagte Modul sind Teil des Pakets, das ich zu erstellen versuche und seine Quelldateien befinden sich im lib-Verzeichnis. Alles scheint in der Cabal-Datei angegeben zu sein, aber warum findet es es nicht?

Ich versuchte es mit runhaskell bauen, aber den gleichen Fehler.

Teil Kabale Datei:

extra-source-files: 
    cbits/hsncurses-shim.c 
    cbits/hsncurses-shim.h 
    cbits/mavericks-c2hs-workaround.h 

source-repository head 
    type: git 
    location: https://john-millikin.com/code/haskell-ncurses/ 

source-repository this 
    type: git 
    location: https://john-millikin.com/code/haskell-ncurses/ 
    tag: haskell-ncurses_0.2.16 

-- Do not use default to using pkg-config to find ncurses libraries, because 
-- the .pc files are missing or broken in many installations. 
flag use-pkgconfig 
    default: False 
    manual: True 
    description: 
    Use pkg-config to set linker and include flags. 

flag force-narrow-library 
    default: False 
    manual: True 
    description: 
    Force including and linking against ncurses instead of ncursesw. This is 
    only useful on systems that have the ncursesw package installed 
    incorrectly. On most systems this will cause compile- or run-time errors. 
library 
    hs-source-dirs: lib 
    ghc-options: -Wall -O2 
    include-dirs: cbits 

    build-depends: 
     base >= 4.6 && < 5.0 
    , containers >= 0.2 
    , text >= 0.7 
    , transformers >= 0.2 

    build-tools: 
    c2hs >= 0.15 

    if flag(use-pkgconfig) 
    if flag(force-narrow-library) 
     cc-options: -DHSNCURSES_NARROW_HEADER 
     pkgconfig-depends: ncurses, panel 
    else 
     pkgconfig-depends: ncursesw, panelw 
    else 
    -- MacOS has a version of ncurses where the narrow- and wide-character 
    -- builds have been merged into a single header/dylib. 
    -- 
    -- Explicitly linking against libpthread.so fixes a build problem on 
    -- platforms where the linker doesn't automatically follow dependencies. 
    if os(darwin) || os(freebsd) || flag(force-narrow-library) 
     cc-options: -DHSNCURSES_NARROW_HEADER 
    if os(darwin) || flag(force-narrow-library) 
     extra-libraries: panel ncurses pthread 
    else 
     extra-libraries: panelw ncursesw pthread 

    c-sources: cbits/hsncurses-shim.c 

    exposed-modules: 
    UI.NCurses 
    UI.NCurses.Panel 

    other-modules: 
    UI.NCurses.Enums 
    UI.NCurses.Compat 
    UI.NCurses.Types 
+1

Beachten Sie, dass es '' UI.NCurses.chs'' gibt, das mit 'c2hs' vorverarbeitet werden muss. Obwohl es von der '.cabal' Datei benötigt wird, könntest du überprüfen ob du' c2hs' auf deinem Pfad installiert hast? –

+0

Ja. c2hs ist installiert. – warp

Antwort

1

begegnete ich das gleiche Problem. Eine Bibliothek, von der ich abhängig war, konnte trotz installierter und PATH nicht mit derselben Fehlermeldung installiert werden.

Die Lösung für mich war cabal clean innerhalb des Projekts zu laufen, das ich mit cabal configure bauen und neu konfigurieren wollte.

Ich vermute, es gab einen hickup während eines vorherigen Build-Prozesses, der Cabal zu denken c2hs lief richtig, was in diesem Fall nicht.