2017-06-22 22 views
2

これらは私が得るリンカエラーは以下のとおりです。VM Haskell、FreeBSD、Stack、happy:ビルドツール(私の場合は `happy-1.19.5`)がインストールに失敗したら何ができますか?

  • 幸せ-1.19.5
  • happy-1.19.5: configure 
    cpphs-1.20.2: download 
    th-reify-many-0.1.6: download 
    time-qq-0.0.1.0: download 
    th-reify-many-0.1.6: configure 
    th-reify-many-0.1.6: build 
    time-qq-0.0.1.0: configure 
    time-qq-0.0.1.0: build 
    cpphs-1.20.2: configure 
    th-reify-many-0.1.6: copy/register 
    time-qq-0.0.1.0: copy/register 
    cpphs-1.20.2: build 
    cpphs-1.20.2: copy/register 
    Progress: 4/9 
    -- While building package happy-1.19.5 using: 
         /usr/local/bin/ghc --make -odir /tmp/stack1466/happy-1.19.5/.stack-work/dist/x86_64-freebsd/Cabal-1.22.4.0/setup -hidir /tmp/stack1466/happy-1.19.5/.stack-work/dist/x86_64-freebsd/Cabal-1.22.4.0/setup 
    -i -i. -package=Cabal-1.22.4.0 -clear-package-db -global-package-db -package-db=/root/.stack/snapshots/x86_64-freebsd/lts-7.14/7.10.2/pkgdb /tmp/stack1466/happy-1.19.5/Setup.lhs -o /tmp/stack1466/happy-1.1 
    9.5/.stack-work/dist/x86_64-freebsd/Cabal-1.22.4.0/setup/setup 
        Process exited with code: ExitFailure 1 
        Logs have been written to: /root/project-name/.stack-work/logs/happy-1.19.5.log 
    
        [1 of 1] Compiling Main    (/tmp/stack1466/happy-1.19.5/Setup.lhs, /tmp/stack1466/happy-1.19.5/.stack-work/dist/x86_64-freebsd/Cabal-1.22.4.0/setup/Main.o) 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:20:1: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:21:1: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:22:1: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:68:1: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:74:1: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:81:19: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:82:23: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:83:26: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:84:26: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:85:30: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:86:33: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:87:32: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:88:36: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:89:39: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:94:14: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:99:13: Warning: Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:100:17: Warning: 
         Tab character 
    
        /tmp/stack1466/happy-1.19.5/Setup.lhs:101:23: Warning: 
         Tab character 
    
        Linking /tmp/stack1466/happy-1.19.5/.stack-work/dist/x86_64-freebsd/Cabal-1.22.4.0/setup/setup ... 
        /usr/local/lib/ghc-7.10.2/unix_A3WgcI5QiHK4PDo4jSYdwQ/libHSunix-2.7.1.0-A3WgcI5QiHK4PDo4jSYdwQ.a(HsUnix.o): In function `__hsunix_rtldNext': 
        HsUnix.c:(.text+0x80): multiple definition of `__hsunix_rtldNext' 
        /root/.stack/snapshots/x86_64-freebsd/lts-7.14/7.10.2/lib/x86_64-freebsd-ghc-7.10.2/unix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS/libHSunix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS.a(HsUnix.o):(.text+0x0): first defined here 
        /usr/local/lib/ghc-7.10.2/unix_A3WgcI5QiHK4PDo4jSYdwQ/libHSunix-2.7.1.0-A3WgcI5QiHK4PDo4jSYdwQ.a(HsUnix.o): In function `__hsunix_rtldDefault': 
        HsUnix.c:(.text+0x90): multiple definition of `__hsunix_rtldDefault' 
        /root/.stack/snapshots/x86_64-freebsd/lts-7.14/7.10.2/lib/x86_64-freebsd-ghc-7.10.2/unix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS/libHSunix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS.a(HsUnix.o):(.text+0x10): first defined here 
        /usr/local/lib/ghc-7.10.2/unix_A3WgcI5QiHK4PDo4jSYdwQ/libHSunix-2.7.1.0-A3WgcI5QiHK4PDo4jSYdwQ.a(HsUnix.o): In function `__hsunix_ptsname': 
        HsUnix.c:(.text+0x130): multiple definition of `__hsunix_ptsname' 
        /root/.stack/snapshots/x86_64-freebsd/lts-7.14/7.10.2/lib/x86_64-freebsd-ghc-7.10.2/unix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS/libHSunix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS.a(HsUnix.o):(.text+0x20): first defined here 
        /usr/local/lib/ghc-7.10.2/unix_A3WgcI5QiHK4PDo4jSYdwQ/libHSunix-2.7.1.0-A3WgcI5QiHK4PDo4jSYdwQ.a(HsUnix.o): In function `__hsunix_grantpt': 
        HsUnix.c:(.text+0x140): multiple definition of `__hsunix_grantpt' 
        /root/.stack/snapshots/x86_64-freebsd/lts-7.14/7.10.2/lib/x86_64-freebsd-ghc-7.10.2/unix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS/libHSunix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS.a(HsUnix.o):(.text+0x30): first defined here 
        /usr/local/lib/ghc-7.10.2/unix_A3WgcI5QiHK4PDo4jSYdwQ/libHSunix-2.7.1.0-A3WgcI5QiHK4PDo4jSYdwQ.a(HsUnix.o): In function `__hsunix_unlockpt': 
        HsUnix.c:(.text+0x150): multiple definition of `__hsunix_unlockpt' 
        /root/.stack/snapshots/x86_64-freebsd/lts-7.14/7.10.2/lib/x86_64-freebsd-ghc-7.10.2/unix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS/libHSunix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS.a(HsUnix.o):(.text+0x40): first defined here 
        /usr/local/lib/ghc-7.10.2/unix_A3WgcI5QiHK4PDo4jSYdwQ/libHSunix-2.7.1.0-A3WgcI5QiHK4PDo4jSYdwQ.a(HsUnix.o): In function `__hsunix_push_module': 
        HsUnix.c:(.text+0x160): multiple definition of `__hsunix_push_module' 
        /root/.stack/snapshots/x86_64-freebsd/lts-7.14/7.10.2/lib/x86_64-freebsd-ghc-7.10.2/unix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS/libHSunix-2.7.2.0-3psvMyG1UoBJLXj9bF7fFS.a(HsUnix.o):(.text+0x50): first defined here 
        collect2: error: ld returned 1 exit status 
    

    その他

    • GHC-7.10.2
    • のFreeBSD 10.3-RELEASE-P18
    • スタックバージョン1.0.1、改訂版e1c8e2c(3065コミット)x86_64

    オプション私が検討している:

    1. 図をリンカエラーが何でありますか。たぶん、修正するのは簡単です。おそらくそれについてのStackOverflowを尋ねます。 ;)それは何の考えですか?

    2. はハッピーを使用している私のプロジェクトのどの依存見つけ、私はそれなしで行うことができるかどうかを確認してください。私はstack list-dependencies --depth=100stack dot --externalbut neither of those helped me unfortunatelyを使ってこれについて調べてみました。
      私の直接の依存関係のどれがそれに依存しているのか(間接的である可能性が高い)どうすればわかりますか?

    3. stackには、pkg install hs-happyで入手可能なシステム全体の利用可能なhappyバイナリを使用するようにしてください。私はどうすればこれについて行くことができますか?

    4. linuxからFreeBSDをクロスコンパイルします。クロスコンパイラを使用していた場合、これが問題にならないとはっきりしているのでしょうか?そして、いずれにせよ、linux-> FreeBSDクロスコンパイラをセットアップするのは難しいですか?それをどうやってやり遂げることができますか?

    5. FreeBSDを必要としないようにしてください。残念なことに私のホスティングプロバイダは現時点でFreeBSDしかサポートしていません。私は他の理由(価格とその関連哲学の価値)で本当に好きです。おそらく、他のすべてが失敗した場合、LinuxホスティングプロバイダがあなたのHaskellプロジェクトにとってあなたのお気に入りであることを教えてください。

    オプション#1または#3は、最も痛みがない可能性があります。
    他にも他のアイデアがありますか?

    +1

    1はほぼ確実に最良の賭けです。問題はリンカーが 'unix'の2つのコピーと両方にリンクすることです(明らかにこれはうまくいきません)。'/usr/local/lib/ghc-7.10.2'のものは含めてはいけません。どのスタックコマンドを実行していますか?あなたは偶然、ghcのグローバルなインストールを持っていますか( '/ usr/local/lib/ghc-7.10.2 /'のパスの存在が私に教えてくれるものです)?スタックによって使用されるバージョンを妨げる可能性があります。 – user2407038

    +0

    私は通常、 '/root/.cabal/bin/stack build --system-ghc --compiler ghc-7.10.2'を実行します。私は何を正確に覚えていませんが、数年前にビルドにStack + FreeBSDをはじめて使用したとき、IIRCスタックは非システムGHCをサポートしていませんでした。だから多分私は 'stack setUp --compiler ghc-7.10 'を使ってやり直すことができます。2' – Wizek

    +1

    ちょうどメモ:あなたのスタックバージョンは少し古すぎるようです。 – Sibi

    答えて

    0

    @ user2407038のポインタと@Sibiのコメントのおかげで、私はスタック1.4.0を1.0.1にアップグレードし、stack setupは隔離されたGHCにアップグレードすることができました。

    happyは、その後魔法のようにインストールされ、すべてが今でもあります。

    関連する問題