Haskell Parsec kompilieren Fehler
Frage
Ich habe installiert Haskell über die Pre gebaut Installer v6.8.2.
Beim Versuch, diese Beispieldatei mit GHC zu kompilieren
module Main where
import Text.ParserCombinators.Parsec
import System.Environment
main :: IO ()
main = do args <- getArgs
putStrLn ("Hello")
Ich erhalte den folgenden Fehler:
D:\src\Haskell>ghc -o read read.hs
ghc -o read read.hs
read.o(.text+0x1b5):fake: undefined reference to `__stginit_parseczm2zi1zi0zi0_TextziParserCombinatorsziParsec_'
collect2: ld returned 1 exit status
Ich habe installiert Parsec über Kabale.
Hat jemand eine Idee, was falsch ist?
Lösung
Versuchen ghc --make -o read read.hs
. GHC wird von Linker Abhängigkeiten kümmern.
Andere Tipps
Ich werde eine andere Art und Weise lösche diese Arbeit zu machen
ghc -package parsec -o read read.hs
Von der ghc Dokumentation
-package P
This option causes the installed package P to be exposed. The package P can be
specified in full with its version number (e.g. network-1.0) or the version number
can be omitted if there is only one version of the package installed. If there are
multiple versions of P installed, then all other versions will become hidden.
The -package P option also causes package P to be linked into the resulting
executable or shared object. Whether a packages' library is linked statically or
dynamically is controlled by the flag pair -static/-dynamic.
finden Sie unter http://www.haskell.org/ ghc / docs / latest / html / users_guide / packages.html
Nach der Parsec docs (Abschnitt 1.2. 1 Kompilieren mit GHC), sollten Sie dies tun:
Wenn Sie Ihre Verknüpfung der Dateien zusammen, Sie müssen GHC sagen, wo es finden Bibliotheken (-L) und mit dem verbinden Parsec Bibliothek zu (-l):
ghc -o myprogram myfile1.o myfile2.o -Lc:\parsec -lparsec
Diese Dokumentation auf der Haskell Compiler kann helfen.