Ho alcuni guasti alla cabala dopo il ponteggio del mio progetto haskell usando holy-project.cabal build --ghc-options = "- fforce-recomp -Wall -fno-code" fallisce
Io non credo la questione è legata a quella del plugin (sembra più simile domanda cabala generale) perché ho potuto riprodurlo partendo da uno standard cabal init
. Sarei sorpreso se il problema fosse legato a SublimeHaskell, come molte persone sembrano utilizzarlo.
Ecco il file cabala che è stato generato (ho semplificato/accorciato un po '):
(il santo progetto genera alcuni file sorgente di esempio lungo)
name: test-holy
version: 0.1.0.0
build-type: Simple
cabal-version: >=1.10
library
exposed-modules: TestHoly
, TestHoly.Swallow
, TestHoly.Coconut
build-depends: base >=4.7 && <4.8
ghc-options: -Wall
hs-source-dirs: src
default-language: Haskell2010
cabal build
funziona
Il seguente comando non funziona:
$ cabal clean && cabal configure && cabal build --ghc-options="-fforce-recomp -Wall -fno-code"
cleaning...
Resolving dependencies...
Configuring test-non-holy2-0.1.0.0...
Building test-non-holy2-0.1.0.0...
Preprocessing library test-non-holy2-0.1.0.0...
[1 of 3] Compiling TestHoly.Coconut (src/TestHoly/Coconut.hs, nothing)
[2 of 3] Compiling TestHoly.Swallow (src/TestHoly/Swallow.hs, nothing)
[3 of 3] Compiling TestHoly (src/TestHoly.hs, nothing)
[1 of 3] Compiling TestHoly.Coconut (src/TestHoly/Coconut.hs, nothing)
[2 of 3] Compiling TestHoly.Swallow (src/TestHoly/Swallow.hs, nothing)
[3 of 3] Compiling TestHoly (src/TestHoly.hs, nothing)
ar: dist/build/TestHoly.o: No such file or directory
ar: dist/build/TestHoly/Swallow.o: No such file or directory
ar: dist/build/TestHoly/Coconut.o: No such file or directory
Da quanto ho capito, a causa del flag -fno-code
(omissione della generazione del codice) non vengono generati file oggetto, quindi il linker non riesce. È previsto? O il linker non dovrebbe essere stato chiamato?
Perché sto eseguendo quel comando di cabala?
Come ho detto prima, sto usando SublimeText per modificare il mio progetto. Non riesce il progetto-santa generato il file cabala con il seguente messaggio:
Build FAILED
REMAINING STDERR:
Warning: the following files would be used as linker inputs, but linking is not being done: dist/build/TestHoly.dyn_o dist/build/TestHoly/Swallow.dyn_o dist/build/TestHoly/Coconut.dyn_o
ghc: no input files
Usage: For basic information, try the `--help' option.
Attraverso la discussione sul SublimeHaskell#158 ho seguito il suggerimento di NH2 per eseguire questo comando cabala direttamente (perché è quello usato da SublimeHaskell).
Sarei grato se qualcuno possa far luce su questo!
Versione informazioni
$ cabal --version
cabal-install version 1.18.0.5
using version 1.18.1.4 of the Cabal library
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.8.3
$ system_profiler SPSoftwareDataType
Software:
System Software Overview:
System Version: OS X 10.10 (14A389)
Kernel Version: Darwin 14.0.0
funziona se si passa il flag '-c' a GHC? –
'cabal build --ghc-options =" - c -fforce-recomp -Wall -fno-code "' dà lo stesso problema. Ho controllato passando '--verbose' a cabal e il flag è passato nel comando ghc:'/usr/bin/ghc --make -fbuilding-cabal-package ... -Wall -c -fforce-recomp - Wall -fno-code' – dvekeman
Puoi provare ad aggiungere '-fwrite-interface'? –