2013-04-22 5 views
8

を立つ生成することは可能ですか?それはアーキテクチャが似ていると仮定すると別のLinuxマシン上で実行するために実行可能なだけではHaskellのスタンド生産する方法はありますだけではHaskellの実行可能

申し訳ありませんが、私は明確にされている必要があります。他のマシンにはghcがインストールされていないかもしれません - pythonのpyinstallerのようなものが私が探していたものですか?

+0

これはあなたが探しているものhttp://www.yesodweb.com/blog/2012/03/shelly-for-shell-scriptsですか? – xhudik

答えて

11

あなたはHaskellのプロジェクトをコンパイルするときに動的にリンクされた依存関係を避けるためにフラグ-static -optl-pthread -optl-staticを使用することができます。コンパイルされた実行可能ファイルは、まったく同じライブラリバージョンを持たない2台のLinuxマシンで実行するのに役立ちます。

+0

私はこの行くあげるよ - ありがとう – opensourcegeek

+0

私はので、私はこれがあなた(とシャン)のためにどのように動作するかも好奇心旺盛ですGHCと静的リンクとの運を持っていたことがありません。例えば、Fedoraでは静的ライブラリ( 'yum install glibc-static')は必要ありませんが、dlopenを呼び出すRTSにはまだ問題があります。 –

3

はい可能です。 gccで作成されたバイナリと同様に、動的ライブラリとプラットフォームが一致していると仮定して、それらをシステム間でコピーすることができます。実際に

GHCが動的にデフォルトで複数のライブラリをリンクしますので、それはGCCのバイナリよりもわずかに高いバーです(例:あなたは、整数、簡単な使用GHCを構築しない限りlibgmp、)。

関連する問題