Не удается установить линейную библиотеку - PullRequest
0 голосов
/ 13 марта 2020

Я нахожусь на Ubuntu, и это сообщение об ошибке, которое я продолжаю получать. Эта библиотека является зависимостью для sdl2. Есть ли какая-то другая внешняя библиотека, которую мне нужно установить?

gh c версия: 8.0.2 версия cabal: 1.24.2.0

$ cabal install linear
Resolving dependencies...
Configuring linear-1.21...
Building linear-1.21...
Failed to install linear-1.21
Build log ( /home/dagon/.cabal/logs/linear-1.21.log ):
cabal: Entering directory '/tmp/cabal-tmp-19434/linear-1.21'
[1 of 1] Compiling Main             ( /tmp/cabal-tmp-19434/linear-1.21/dist/setup/setup.hs, /tmp/cabal-tmp-19434/linear-1.21/dist/setup/Main.o )
Linking /tmp/cabal-tmp-19434/linear-1.21/dist/setup/setup ...
Configuring linear-1.21...
Building linear-1.21...
Preprocessing library linear-1.21...
[ 1 of 22] Compiling Linear.Instances ( src/Linear/Instances.hs, dist/build/Linear/Instances.o )
[ 2 of 22] Compiling Linear.Vector    ( src/Linear/Vector.hs, dist/build/Linear/Vector.o )
[ 3 of 22] Compiling Linear.Epsilon   ( src/Linear/Epsilon.hs, dist/build/Linear/Epsilon.o )
[ 4 of 22] Compiling Linear.Metric    ( src/Linear/Metric.hs, dist/build/Linear/Metric.o )
[ 5 of 22] Compiling Linear.V         ( src/Linear/V.hs, dist/build/Linear/V.o )
[ 6 of 22] Compiling Linear.V0        ( src/Linear/V0.hs, dist/build/Linear/V0.o )

src/Linear/V0.hs:118:26: error:
    • Can't find interface-file declaration for variable Language.Haskell.TH.Lib.conE
        Probable cause: bug in .hi-boot file, or inconsistent .hi file
        Use -ddump-if-trace to get an idea of which file caused the error
    • In the expression:
        Language.Haskell.TH.Lib.conE
          (Language.Haskell.TH.Syntax.mkNameG_d
             "linear-1.21-3KFkhfsxDISEWxZYTrwhrX" "Linear.V0" "V0")
      In an equation for ‘lift’:
          lift V0
            = Language.Haskell.TH.Lib.conE
                (Language.Haskell.TH.Syntax.mkNameG_d
                   "linear-1.21-3KFkhfsxDISEWxZYTrwhrX" "Linear.V0" "V0")
      When typechecking the code for ‘Language.Haskell.TH.Syntax.lift’
        in a derived instance for ‘Lift (V0 a)’:
        To see the code I am typechecking, use -ddump-deriv
      In the instance declaration for ‘Lift (V0 a)’
cabal: Leaving directory '/tmp/cabal-tmp-19434/linear-1.21'
cabal: Error: some packages failed to install:
linear-1.21 failed during the building phase. The exception was:
ExitFailure 1

1 Ответ

1 голос
/ 13 марта 2020

Возможно, это проблема с вашими (очень старыми) версиями cabal и GH C. Обратите внимание, как обстоят дела с использованием новых версий:

% docker run --rm -it haskell bash
... downloading image ...
# ghc --version && cabal --version
The Glorious Glasgow Haskell Compilation System, version 8.8.3
cabal-install version 3.0.1.0
compiled using version 3.0.2.0 of the Cabal library
# cabal update && cabal install --lib linear
... lots of download/build/install steps...
Starting     linear-1.21 (all, legacy fallback)
Building     linear-1.21 (all, legacy fallback)
Installing   linear-1.21 (all, legacy fallback)
Completed    linear-1.21 (all, legacy fallback)
# ghci
Prelude> import Linear
Prelude Linear>
...