虽然我可以在同一目录中使用多个乌龟脚本 (例如,解释了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和漂亮的 显然需要两个不同的目标文件。
无论如何,Turtle和主要模块的故事是什么:不会 如果可以使用(并因此选择)模块名称,那就更好了
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'
依旧......
是否可以在同一个目录中编译两个不同的海龟脚本?如何?
感谢。
答案 0 :(得分: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
对不起噪音