如何构建程序,以便它不需要DLL

Jer*_*rry 6 compiler-construction dll linker haskell static-linking

如何编译(Haskell)程序以便它不需要DLL?

我写了一个使用GLUT并需要glut32.dll的程序.我编译了它ghc --make program.hs.现在我想分发我的程序,但我不希望它需要任何DLL(因此我可以将.exe提供给用户).我尝试编译,ghc -static --make program.hs但它没有工作,我仍然得到"用户错误(未知的GLUT条目glutInit)".

我怎样才能做到这一点?

Gre*_*ill 3

只有当 GLUT 提供库的静态版本时,这才是可能的(可以将其命名为类似的名称glut32s.lib,但不要求他们特别调用它)。

这种方法的成功还取决于 GHC 是否允许与外部静态库链接。的手册页ghc表明-static仅适用于 Haskell 库,不适用于其他外部库。