2016-08-07 9 views
0

私はWindows 10でHaskell Stackを使用していますHaskell Stackで依存するパッケージの誤った.cabalファイルを修正するにはどうすればよいですか?

自分のパッケージの依存関係としてgtkをインストールしようとすると、次のメッセージが表示されます。

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 

私はこのメッセージが原因のglib-0.13.2.2でglib.cabalファイルのバグであることがわかったので、私は別にglibのをインストールしようとすると、私はglib.cabal編集(CPPに-D___attribute__(A)=オプションを削除)してインストール明らかに。

しかし、スタックを使用してインストールしようとすると、stack install gtkコマンドは、インストールされたglibパッケージの代わりに常にHackage 1コマンドを使用します。

したがって、私の質問は、別にインストールされたglibをどうすれば使用できますか?または、オプションやその他のものを使用して、インストール中に.cabalファイルを変更する方法はありますか?

+1

あなたのシステムでは、 'stack.yaml'の' packages'セクションの下をポイントします。 – Sibi

+0

@Sibiこれを扱う他のエレガントな方法はありますか?少なくとも私は、パッケージマネージャを使用して利点を放棄し、プロジェクトが移植性を失うのではないかと思います。 –

+0

@JunyoungClareJangあなたはもっとエレガントな方法だろうと思いますか? –

答えて

2

スタックでは、ローカルディレクトリまたはgithubリポジトリからの依存関係を使用できます。したがって、プロジェクトをフォークし、修正したり、おそらくPRをしてから、stack.yamlの "packages"セクションに入れてください。

- location: 
    git: https://github.com/user/repo 
    commit: a1b3559090e9c75ce1d46969085fe4f918b2fa82 
関連する問題