我有一个简单的程序,似乎根本没有使用libgmp。
-- Sample.hs
main = putStrLn "hi"
如果我在Linux上使用默认选项编译它
$ ghc Sample.hs
这将生成一个名为
Sample
的可执行文件。我想查看一个不使用任意精度整数的简单程序所需的库。$ ldd Sample | sed -e 's/[(].*[)]/(0x000...)/'
linux-vdso.so.1 (0x000...)
libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x000...)
libm.so.6 => /lib64/libm.so.6 (0x000...)
librt.so.1 => /lib64/librt.so.1 (0x000...)
libdl.so.2 => /lib64/libdl.so.2 (0x000...)
libc.so.6 => /lib64/libc.so.6 (0x000...)
/lib64/ld-linux-x86-64.so.2 (0x000...)
libpthread.so.0 => /lib64/libpthread.so.0 (0x000...)
有没有一些标志我可以传递给GHC,告诉它不要生成依赖于libgmp.so
库的可执行文件。我不想静态链接libgmp,理想情况下,我希望配置GHC以根本不发出依赖于该库的代码。如果我尝试使用Integer
之类的内容,我可以接受一些功能减少,例如错误提示。