während ich mehrere Turtle-Skripte im selben Verzeichnis verwenden kann (habe zB pretty.hs und srv.hs interpretiert), habe ich gelernt, dass ich nur eine haben kann sie kompilierten zB. mitkompilieren mehr als ein Turtle-Skripte im selben Verzeichnis
ghc -no-user-package-db -package-db .cabal-sandbox/*-packages.conf.d -O2 -threaded -outputdir=. -o srv srv.hs
wie dies implizit main.o und Main.hi würde baut auch und und srv und ziemlich Notwendigkeit, zwei unterschiedliche Objektdateien, offensichtlich.
Was die Geschichte von Schildkröte und das Hauptmodul ist sowieso: wäre es nicht schöner gewesen, wenn man (und damit wählen?) Modulnamen, wie
so verwenden könnteModule Whatever
import Turtle
ich zu kompilieren versucht, die .o-Dateien einzeln, aber ohne Glück:
$ ghc -no-user-package-db -package-db .cabal-sandbox/*-packages.conf.d -O2 -threaded -outputdir=. -c -o MainPretty.o pretty.hs
keine Beschwerden so weit, aber dann:
$ ghc -no-user-package-db -package-db .cabal-sandbox/*-packages.conf.d -O2 -threaded -outputdir=. -o pretty MainPretty.o
MainPretty.o: In function `rdyO_info':
(.text+0x40e): undefined reference to `transzuGZZTjP9K5WFq01xC9BAGQpF_ControlziMonadziIOziClass_zdfMonadIOIO_closure'
MainPretty.o: In function `rdyQ_info':
(.text+0x4d6): undefined reference to `transzuGZZTjP9K5WFq01xC9BAGQpF_ControlziMonadziIOziClass_zdfMonadIOIO_closure'
MainPretty.o: In function `cfxy_info':
(.text+0x712): undefined reference to `optpazuFpNJ7fLofFNEy3rK4ZZnBoD_OptionsziApplicativeziTypes_AltP_con_info'
MainPretty.o: In function `cfxy_info':
(.text+0x72e): undefined reference to `systezu0e3pMPmZZzzix21iFp2U03Lc_FilesystemziPathziRules_posixFromText_closure'
MainPretty.o: In function `cfyR_info':
(.text+0x92a): undefined reference to `optpazuFpNJ7fLofFNEy3rK4ZZnBoD_OptionsziApplicativeziTypes_AltP_con_info'
und so weiter ...
Ist es trotzdem möglich, zwei verschiedene Turtle-Skripte in demselben Verzeichnis zu kompilieren? Wie?
Danke.
Wenn Sie 'ghc' das' -ffektorrecomp-Flag 'geben, werden diese Dateien vor dem Kompilieren gelöscht. – Michael
OK, vielen Dank, das wusste ich nicht. –