Immer wenn ich versuche, ein Paket mit cabal (2.0.0) auf OSX 10.12.6 und GCC 4.8.0 zu installieren, werde ich getroffen Der folgende Fehler bezüglich der Datei Stg.h aus GHC 8.2.1, der Fehler ist unglaublich kryptisch. Ich kann kein Paket unter OSX installieren.GHC/GCC Compiler-Problem __STDC_VERSION__ w/C99 von Stg.h, schlägt für jedes Paket fehl
erwartetes Verhalten:
cabal install $packagename
$packagename
auf OSX installieren sollten, da Kabale und Intrige installieren richtig installiert sind.
Beobachtete Verhalten:
cabal install $packagename
nicht aufgrund eines Low-Level-GHC/GCC Ausgabe auf eine __STDC_VERSION__
genannt Variablen in Beziehung. Ich bin kein C-Programmierer und ich erwarte nicht, dass meine korrekte Installation von GHC und Cabal fehlschlägt, Pakete zu installieren. AFAICT dieses Problem bezieht sich nicht auf Benutzerfehler.
[email protected] git:the_D*+ ~/Projects/kata/euler>cabal update && cabal
install optparse-applicative
Downloading the latest package list from hackage.haskell.org
gcc: warning: couldn’t understand kern.osversion ‘16.7.0
gcc: warning: couldn’t understand kern.osversion ‘16.7.0
Warning: --root-cmd is no longer supported, see
https://github.com/haskell/cabal/issues/3353 (if you didn't type --root-cmd,
comment out root-cmd in your ~/.cabal/config file)
Resolving dependencies...
Downloading transformers-compat-0.5.1.4...
Configuring colour-2.3.4...
Configuring transformers-compat-0.5.1.4...
Building colour-2.3.4...
Building transformers-compat-0.5.1.4...
Failed to install transformers-compat-0.5.1.4
Build log (/Users/Matthew/.cabal/logs/ghc-8.2.1/transformers-compat-0.5.1.4-HHfl4KyHCH71PMx2CRgdve.log):
cabal: Entering directory '/var/folders/qw/k0t4r5fd5_b0phjvwtxx_n700000gq/T/cabal-tmp-91946/transformers-compat-0.5.1.4'
Configuring transformers-compat-0.5.1.4...
gcc: warning: couldn’t understand kern.osversion ‘16.7.0
Preprocessing library for transformers-compat-0.5.1.4..
Building library for transformers-compat-0.5.1.4..
[1 of 2] Compiling Control.Monad.Trans.Instances (src/Control/Monad/Trans/Instances.hs, dist/build/Control/Monad/Trans/Instances.o)
[2 of 2] Compiling Paths_transformers_compat (dist/build/autogen/Paths_transformers_compat.hs, dist/build/Paths_transformers_compat.o)
[1 of 2] Compiling Control.Monad.Trans.Instances (src/Control/Monad/Trans/Instances.hs, dist/build/Control/Monad/Trans/Instances.p_o)
In file included from /Library/Frameworks/GHC.framework/Versions/8.2.1-x86_64/usr/lib/ghc-8.2.1/include/Rts.h:30:0: error:
0,
from /var/folders/qw/k0t4r5fd5_b0phjvwtxx_n700000gq/T/ghc92089_0/ghc_7.c:2:
/Library/Frameworks/GHC.framework/Versions/8.2.1-x86_64/usr/lib/ghc-8.2.1/include/Stg.h:30:3: error:
error: #error __STDC_VERSION__ does not advertise C99 or later
# error __STDC_VERSION__ does not advertise C99 or later
^
|
30 | # error __STDC_VERSION__ does not advertise C99 or later
| ^
`gcc' failed in phase `C Compiler'. (Exit code: 1)
cabal: Leaving directory '/var/folders/qw/k0t4r5fd5_b0phjvwtxx_n700000gq/T/cabal-tmp-91946/transformers-compat-0.5.1.4'
Failed to install colour-2.3.4
Build log (/Users/Matthew/.cabal/logs/ghc-8.2.1/colour-2.3.4-9c0ktEQZfar3Wigr5kT6BU.log):
cabal: Entering directory '/var/folders/qw/k0t4r5fd5_b0phjvwtxx_n700000gq/T/cabal-tmp-91945/colour-2.3.4'
Configuring colour-2.3.4...
Preprocessing library for colour-2.3.4..
Building library for colour-2.3.4..
[ 1 of 14] Compiling Data.Colour.CIE.Chromaticity (
Data/Colour/CIE/Chromaticity.hs, dist/build/Data/Colour/CIE/Chromaticity.o)
...
[ 1 of 14] Compiling Data.Colour.CIE.Chromaticity (Data/Colour/CIE/Chromaticity.hs, dist/build/Data/Colour/CIE/Chromaticity.p_o)
In file included from /Library/Frameworks/GHC.framework/Versions/8.2.1-x86_64/usr/lib/ghc-8.2.1/include/Rts.h:30:0: error:
0,
from /var/folders/qw/k0t4r5fd5_b0phjvwtxx_n700000gq/T/ghc92201_0/ghc_3.c:2:
/Library/Frameworks/GHC.framework/Versions/8.2.1-x86_64/usr/lib/ghc-8.2.1/include/Stg.h:30:3: error:
error: #error __STDC_VERSION__ does not advertise C99 or later
# error __STDC_VERSION__ does not advertise C99 or later
^
|
30 | # error __STDC_VERSION__ does not advertise C99 or later
| ^
`gcc' failed in phase `C Compiler'. (Exit code: 1)
cabal: Leaving directory '/var/folders/qw/k0t4r5fd5_b0phjvwtxx_n700000gq/T/cabal-tmp-91945/colour-2.3.4'
cabal: Error: some packages failed to install:
ansi-terminal-0.7.1.1-3eOIKoB8mo97DkHMJ6AgBw depends on ansi-terminal-0.7.1.1
which failed to install.
ansi-wl-pprint-0.6.8.1-Ctcte9oFd5tFGoIV7u576g depends on
ansi-wl-pprint-0.6.8.1 which failed to install.
colour-2.3.4-9c0ktEQZfar3Wigr5kT6BU failed during the building phase. The
exception was:
ExitFailure 1
optparse-applicative-0.14.0.0-Iaq7kOKFg2Z4XsKvk269H6 depends on
optparse-applicative-0.14.0.0 which failed to install.
transformers-compat-0.5.1.4-HHfl4KyHCH71PMx2CRgdve failed during the building phase. The exception was:
ExitFailure 1
Da der Fehler hat nichts mit Haskell oder die Installation zu tun, würde ich argumentieren, dass der Fehler ziemlich periphere zum installierten System ist. GCC 4.2/4.8 werden routinemäßig in Unternehmenssystemen verwendet, und Versionsanforderungen werden in der Haskell-Systemdokumentation nicht erwähnt (seltene Erwähnungen finden sich im ghci-Standalone für ältere Versionen von GHC und LLVM in den neueren Standalones). 'brew upgrade gcc' und Aliasing gcc lösten das Problem. Danke @chi – W4t3randWind
Es sollte nicht notwendig sein, gcc zu aktualisieren. gcc 4.8.0 wurde 2013 veröffentlicht. Es unterstützt standardmäßig C99 * nicht. Sie müssen es nur mit '-std = c99' (um C99 zu unterstützen) oder' -std = gnu99' aufrufen (um C99 mit GNU-Erweiterungen zu unterstützen). Die Standardsprache ist '-std = gnu89'. Für neuere Releases lautet der Standardwert "-std = gnu11". (Aber wenn Sie gcc sowieso aktualisiert haben, sollte das auch lösen.) –
@KeithThompson Ah, richtig. Das ist ein ausgezeichneter Ratschlag. Ich kann mich nicht erinnern, wie ich Cabal davon überzeugen konnte, diese Flagge weiterzugeben, aber es sollte machbar sein. – chi