gpt4 book ai didi

haskell - 在 cabal 构建中包含数据文件

转载 作者:行者123 更新时间:2023-12-02 01:58:02 25 4
gpt4 key购买 nike

我有一个具有以下结构的包(好吧,这大大简化了,但是......)

app/
src/
Main.hs
data/
data.txt
app.cabal
Paths_app.hs
Setup.hs

在 Paths_app.hs 我有:
module Paths_app where
getDataFileName :: FilePath -> IO FilePath
getDataFileName = return

在 Main.hs 我有:
module Main where
import Paths_app
main = do
file <- getDataFileName "data/data.txt"
data <- readFile file
putStrLn $ "Your data is: " ++ data

我的 app.cabal 文件的相关部分如下所示:
name: app
version: 1.0
build-type: Simple
data-files: data/data.txt

executable foo
build-depends: base, haskell98
main-is: Main.hs
hs-source-dirs: src

这构建得很好(使用 cabal configure 后跟 cabal install )但是可执行文件提示它找不到 data.txt 文件。我试过更换线路
file <- getDataFileName "data/data.txt"


file <- getDataFileName "data.txt"

但同样的事情也会发生。有什么明显的我做错了吗?

最佳答案

我试图重现它,但它对我来说很好。

在您描述的设置中,我不得不放弃对 haskell98 的依赖。作为basehaskell98提供Prelude .此外,文件 Main不会编译,因为它使用了关键字 data作为变量名,所以我将变量重命名为dat .但后来它工作得很好。

关于我的设置的一些信息:

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.4.1

$ cabal --version
cabal-install version 0.13.3
using version 1.14.0 of the Cabal library

$ ls ~/.cabal/bin/
... foo ...

$ ls ~/.cabal/share/app-1.0/data/
data.txt

关于haskell - 在 cabal 构建中包含数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10349221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com