2
我想编译下面的代码。GHC链接问题
import Data.List
import Data.Ord
import qualified Data.MemoCombinators as Memo
collatzLength :: Int -> Int
collatzLength = Memo.arrayRange (1, 1000000) collatzLength'
where
collatzLength' 1 = 1
collatzLength' n | odd n = 1 + collatzLength (3 * n + 1)
| even n = 1 + collatzLength (n `quot` 2)
main = print $ maximumBy (comparing fst) $ [(collatzLength n, n) | n <- [1..1000000]]
的Haskell编译吐出:
euler14.o: In function `s1pw_info':
(.text+0x8dd): undefined reference to `__stginit_datazmmemocombinatorszm0zi4zi1_DataziMemoCombinators_'
euler14.o: In function `rfX_info':
(.text+0x35d): undefined reference to `datazmmemocombinatorszm0zi4zi1_DataziMemoCombinators_arrayRange_info'
euler14.o: In function `rfX_srt':
(.data+0x4c): undefined reference to `datazmmemocombinatorszm0zi4zi1_DataziMemoCombinators_arrayRange_closure'
collect2: ld returned 1 exit status
我试着用搜索引擎,但无济于事。有没有可以查找这些错误的地方?他们的意思是什么?
这些标识符让我的眼睛受伤。那里有C++吗? –
你的GHC命令行是什么样的?你尝试过'ghc --make Foo.hs'吗? – hammar
我刚输入ghc -O2 euler.hs。显然它需要是ghc-O2 --make euler14.hs –