这是我的setup.cabal文件:
-- Initial SparkSetup.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
name: SparkSetup
version: 0.1.0.0
-- synopsis:
-- description:
-- license:
license-file: LICENSE
author: user
maintainer: user
-- copyright:
-- category:
build-type: Simple
-- extra-source-files:
cabal-version: >=1.10
executable SparkSetup
-- main-is:
-- other-modules:
-- other-extensions:
build-depends: base >=4.7 && <4.8
-- hs-source-dirs:
default-language: Haskell2010
运行cabal build
时会在dist文件夹中生成一个SparkSetup.exe文件,该文件可以直接执行。 Linux有类似的东西吗?是否可以生成.sh文件,该文件将打包Haskell代码以在Linux上执行?
更新:我在Windows上想要为Linux / Unix交叉编译
答案 0 :(得分:2)
构建一个适用于所有常见发行版的单个二进制文件充其量是一项具有挑战性的任务。人们喜欢Joey Hess managed to pull that through,但通常不建议这样做。
一种选择是将您的代码上传到hackage,指示您的用户安装Haskell Platform(如果您与旧版本的GHC保持兼容,就像运行{{1}一样简单在基于Debian的发行版上),然后运行apt-get install haskell-platform
。
为了确保您的软件包使用各种编译器构建,您可以使用Herbert’s excellent travis setup,至少只要您的代码在GitHub上。
答案 1 :(得分:0)
如果你想分发一些二进制文件,它几乎无处不在,并且非常容易安装,你可以随时使用Docker。另外,检查stack,它们似乎为这类事情提供了很好的支持。