GHC produce binarios independientes que no requieren la instalación de GHC, sin embargo, se vinculan con algunas bibliotecas dinámicas, sobre todo libgmp
. Las bibliotecas restantes se encuentran generalmente fuera de la caja en la mayoría de los sistemas Linux. Creo que la situación es similar en Windows.
Puede comprobar qué bibliotecas dinámicas que dependen del uso de ldd
en Linux. Esto es lo que me pasa en Ubuntu Natty como un simple programa Hello World:
$ echo 'main = putStrLn "Hello World"' > Hello.hs
$ ghc --make Hello.hs
[1 of 1] Compiling Main (Hello.hs, Hello.o)
Linking Hello ...
$ ldd Hello
linux-vdso.so.1 => (0x00007fffe45ff000)
libgmp.so.3 => /usr/lib/libgmp.so.3 (0x00007f8874cf9000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8874a74000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f887486b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8874667000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f88742d3000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f88740b4000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8874f7a000)
Consulte también esta respuesta anterior sobre la vinculación dinámica, http://stackoverflow.com/questions/6115459/small-haskell-comprogram-compiled-with-ghc-into-huge-binary –
Y en la vinculación estática, http://stackoverflow.com/questions/5131182/how-to-compile-haskell-to-a-static-library –