wxHaskellライブラリを使用するhaskellプログラムをコンパイルしましたが、wxHaskellがインストールされていない他のマシンで実行する方法を知りたいと思います。もちろん、エラーが表示され、出力に書き込まれたdllをコピーしてそのマシンにコピーできますが、プロのソリューションとは何ですか?インストーラーなどを作成できますか?
手伝ってくれてありがとう
wxHaskellライブラリを使用するhaskellプログラムをコンパイルしましたが、wxHaskellがインストールされていない他のマシンで実行する方法を知りたいと思います。もちろん、エラーが表示され、出力に書き込まれたdllをコピーしてそのマシンにコピーできますが、プロのソリューションとは何ですか?インストーラーなどを作成できますか?
手伝ってくれてありがとう
実行可能ファイルを完全に静的にリンクする必要があります。これを行う方法はシステムによって異なりますが、一般に、-staticフラグをGHCに渡し、-optl-staticをリンカーに渡す必要があります。
最近のcabalizedwxHaskell実装を使用する場合、ほとんどすべてが静的にリンクされているため、非常に簡単です。
私はオープンソースであるInnoSetupを使用しており、非常にうまく機能します。私のスクリプトには、少なくとも次のものが必要です。
AppName=My Wonderful Application
AppVerName=My Wonderful Application 0.1.13
CreateAppDir=yes
DefaultDirName={pf}\MyWonderfulApplication
[Files]
Source: "path\to\your\wxWidgets.dll"
Source: "path\to\msvcrt.dll"
Source: "path\to\your\application.exe"
DefaultDirNameを除くすべてのパスは、開発マシン上のパスです。
重要な項目は、wxWidgets DLL(wxWidgetsの構築方法によっては複数のDLLになる場合があります。単一のDLL、wxmsw28u_gcc_custom.dllを作成するモノリシックオプションをお勧めします)とアプリケーションバイナリです。
他のライブラリにリンクしている場合は、それらも必要になります。Windows上の多くのサードパーティライブラリはmsvcrt.dllを必要とします。それが、私がそれについて言及した理由です。