相关疑难解决方法(0)

小型Haskell程序用GHC编译成巨大的二进制文件

即使是简单的小型Haskell程序也会变成巨大的可执行文件.

我已经编写了一个小程序,它被编译(用GHC)到二进制文件,大小扩展到7 MB!

甚至可以将一个小的Haskell程序编译成巨大的二进制文件?

如果有的话,我可以做些什么来减少这个?

linker haskell ghc glfw static-linking

123
推荐指数
2
解决办法
1万
查看次数

Haskell:模块导入不必要的二进制增长

当我通过以下方式之一将(大)模块导入主模块时:

import Mymodule
import qualified Mymodule as M
import Mymodule (MyDatatype)
Run Code Online (Sandbox Code Playgroud)

与不导入该模块时相比,编译后的二进制文件增长量相同.无论我是否在主模块中使用该模块内的任何内容,都会发生这种情况.不应该编译器(我在Debian测试中使用GHC)只添加运行它所需的二进制文件吗?

在我的具体情况下,我在Mymodule中有一个巨大的Map,我没有在Main模块中使用它.有选择地导入我真正需要的东西,并没有改变编译二进制文件的增长.

haskell

8
推荐指数
1
解决办法
1128
查看次数

Haskell 工具栈和可执行文件大小

我使用Stack 工具创建了一个 Haskell CLI 。感谢 Travis,我刚刚成功设置了交叉编译,但我不明白为什么 linux (6MB)、osx (2MB) 和 windows (18MB!) 之间的可执行文件大小如此不同。怎么来的?

发布:https : //github.com/unfog-io/unfog-cli/releases/tag/v0.1.2

特拉维斯 conf:https : //github.com/unfog-io/unfog-cli/blob/master/.travis.yml

编辑

当我用 tar.gz 压缩可执行文件时,我减少了差异,但仍然如此!我现在有 linux (1.35MB)、osx (0.61MB)、windows (3.93MB)(见发布

executable haskell cross-platform travis-ci haskell-stack

5
推荐指数
0
解决办法
164
查看次数