自明ではないhaskellプログラム(単一ファイルよりも大きい)の作成を開始するステップとしてスタックを選択した後、スタックに.iniファイルなどを認識させる方法がわからないという問題に遭遇しました。.cabalファイルまたはstack.yamlファイルのどこにも収まらないようです。
明確にするために:スタックビルド/インストールを実行した後、生成された.exeのあるフォルダーにはリソースがないため、もちろんプログラムは大量のIOエラー(ファイルが見つかりません)でクラッシュします。
2つのオプションがあります。あなたが探していると思うのはデータファイルです。これを行うには、基本的に次のことを行います。
data-files
フィールドに追加して.cabal
、パッケージのビルド時にインストールされるようにしますPaths_package_name
あなたにモジュールをother-modules
あなたの中.cabal
のファイル(置き換えるpackage_name
パッケージ名で)Paths_*
必要に応じてそのモジュールをインポートしますgetDataFileName :: FilePath -> IO FilePath
関数を使用して、必要なデータファイルへの絶対パスを取得します別の方法は、file-embedパッケージなどを使用して、TemplateHaskellを使用して実行可能ファイル自体の中にデータファイルの内容を埋め込むことです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加