2016-08-07 4 views
0

Ich benutze Haskell Stack in Windows 10Wie kann ich falsche .cabal-Datei des abhängigen Pakets in Haskell Stack beheben?

Wenn ich versuche, gtk als Abhängigkeit von meinem eigenen Paket zu installieren, habe ich folgende Nachrichten erhalten.

glib-0.13.2.2: configure 
glib-0.13.2.2: build 
Progress: 1/5 
-- While building package glib-0.13.2.2 using: 
     C:\Users\junyoung\AppData\Local\Temp\stack6012\glib-0.13.2.2\.stack-work\dist\2672c1f3\setup\setup --builddir=.stack-work\dist\2672c1f3 build --ghc-options " -ddump-hi -ddump-to-file" 
    Process exited with code: ExitFailure 1 
    Logs have been written to: C:\Users\junyoung\Documents\HaskellProject\StackProject\Hotepad\.stack-work\logs\glib-0.13.2.2.log 

    [1 of 2] Compiling SetupWrapper  (SetupWrapper.hs, C:\Users\junyoung\AppData\Local\Temp\stack6012\glib-0.13.2.2\.stack-work\dist\2672c1f3\setup\SetupWrapper.o) 
    [2 of 2] Compiling Main    (C:\Users\junyoung\AppData\Local\Temp\stack6012\glib-0.13.2.2\Setup.hs, C:\Users\junyoung\AppData\Local\Temp\stack6012\glib-0.13.2.2\.stack-work\dist\2672c1f3\setup\Main.o) 
    Linking C:\Users\junyoung\AppData\Local\Temp\stack6012\glib-0.13.2.2\.stack-work\dist\2672c1f3\setup\setup.exe ... 
    [1 of 2] Compiling Gtk2HsSetup  (Gtk2HsSetup.hs, dist\setup-wrapper\Gtk2HsSetup.o) 
    [2 of 2] Compiling Main    (SetupMain.hs, dist\setup-wrapper\Main.o) 
    Linking dist/setup-wrapper\setup.exe ... 
    Configuring glib-0.13.2.2... 
    Building glib-0.13.2.2... 
    Preprocessing library glib-0.13.2.2... 
    .stack-work\dist\2672c1f3\build\System\Glib\StoreValue_hsc_utils.o:StoreValue_hsc_utils.c:(.text+0x0): multiple definition of `__debugbreak' 
    .stack-work\dist\2672c1f3\build\System\Glib\StoreValue_hsc_make.o:StoreValue_hsc_make.c:(.text+0x0): first defined here 
    collect2.exe: error: ld returned 1 exit status 
    linking .stack-work\dist\2672c1f3\build\System\Glib\StoreValue_hsc_make.o failed (exit code 1) 
    command was: C:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\mingw\bin\gcc.exe .stack-work\dist\2672c1f3\build\System\Glib\StoreValue_hsc_make.o .stack-work\dist\2672c1f3\build\System\Glib\StoreValue_hsc_utils.o -o .stack-work\dist\2672c1f3\build\System\Glib\StoreValue_hsc_make.exe -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib -LC:/msys64/mingw64/lib -lgobject-2.0 -lglib-2.0 -lintl -LC:\Users\junyoung\AppData\Roaming\stack\snapshots\f21484d8\lib\x86_64-windows-ghc-7.10.3\utf8-string-1.0.1.1-L8eKHa7Iv9q7FVKUYW6u4b -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib -LC:\Users\junyoung\AppData\Roaming\stack\snapshots\64a043b0\lib\x86_64-windows-ghc-7.10.3\text-1.2.2.1-HmqVQnZSpjaC156ABqPhne -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\lib\binar_3uXFWMoAGBg0xKP9MHKRwi -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\lib\conta_2C3ZI8RgPO2LBMidXKTvIU -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\lib\bytes_6VWy06pWzJq9evDvK2d4w6 -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\lib\deeps_6vMKxt5sPFR0XsbRWvvq59 -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\lib\array_67iodizgJQIIxYVTp4emlA -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\lib\base_HQfYBxpPvuw8OunzQu6JGM -lwsock32 -luser32 -lshell32 -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\lib\integ_2aU3IZNMF9a7mQ0OzsZ0dS -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\lib\ghcpr_8TmvWUcS1U1IKHT0levwg3 -LC:\Users\junyoung\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.3\lib/rts -lm -lwsock32 -lgdi32 -lwinmm 

fand ich, dass diese Nachrichten wegen glib.cabal Dateien Fehler bei glib-0.13.2.2 ist, so, wenn ich versuche separat glib zu installieren, ich bearbeiten glib.cabal (entfernen -D___attribute__(A)= Option auf CPP) und installieren deutlich.

Wenn ich jedoch versuche, es mit dem Stack zu installieren, nimmt der Befehl stack install gtk immer Hackage anstelle des installierten glib-Pakets.

Kurz gesagt, meine Frage ist also, wie kann ich separat installiert glib verwenden? Oder gibt es eine Möglichkeit, Pakete .cabal Datei während der Installation zu ändern, mit Optionen oder was auch immer?

+1

haben das Paket 'glib' lokal an Ihrem System und Zeigen Sie darauf unter 'packages' in' stack.yaml'. – Sibi

+0

@Sibi Gibt es keinen anderen eleganten Weg, damit umzugehen? Zumindest denke ich, dass diese Herangehensweise die Vorteile des Paketmanagers zunichte macht und das Projekt die Portabilität verliert, oder? –

+0

@JunyoungClareJang Was wäre Ihrer Meinung nach ein eleganterer Weg? –

Antwort

2

Mit Stack können Sie eine Abhängigkeit von einem lokalen Verzeichnis oder ein Github Repo verwenden. So fühlen sich frei, das Projekt gabeln, hat der Updates, vielleicht sogar eine PR tun, und dann wird diese unter „Paketen“ Abschnitt in Ihre stack.yaml setzen:

- location: 
    git: https://github.com/user/repo 
    commit: a1b3559090e9c75ce1d46969085fe4f918b2fa82 
Verwandte Themen