2016-07-22 5 views
0

, в то время как я могу использовать несколько скриптов черепах в том же каталоге (например, с использованием методов pretty.hs и srv.hs), я узнал, что могу иметь только один из они составлены, например. сскомпилируйте несколько сценариев черепах в одном каталоге

ghc -no-user-package-db -package-db .cabal-sandbox/*-packages.conf.d -O2 -threaded -outputdir=. -o srv srv.hs 

как это неявно строит main.o и Main.hi, а также, и и SRV и довольно бы потребности двух разных объектных файлов, очевидно.

Что рассказ о черепахе и главного модуля в любом случае: не будет ли бы лучше, если бы можно было бы использовать (и, следовательно, выбрать) имя модуля, например, так

Module Whatever 
import Turtle 

Я попытался скомпилировать .o файлы раздельно, но не повезло:

$ ghc -no-user-package-db -package-db .cabal-sandbox/*-packages.conf.d -O2 -threaded -outputdir=. -c -o MainPretty.o pretty.hs 

жалоб нет до сих пор, но потом:

$ 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' 

и т. Д.

Возможно ли, тем не менее, скомпилировать два разных сценария черепахи в одном и том же каталоге? как?

Спасибо.

ответ

1

Ах, чтобы ответить на мой собственный вопрос: я видел, что я просто удалить эти файлы main.o/Main.hi после компиляции (иметь другую созданную заново тогда), так:

ghc -no-user-package-db -package-db .cabal-sandbox/*-packages.conf.d -O2 -threaded -outputdir=. -o pretty pretty.hs 
rm -f Main.o Main.hi 

Извините за шум

+0

Если вы дадите '' ghc' флаг '-fforce-recomp', он избавится от этих файлов перед попыткой компиляции. – Michael

+0

ОК, большое спасибо, я этого не знал. –

Смежные вопросы