Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows ghc找不到我用cabal new install--lib构建和安装的库_Windows_Haskell_Cabal_Cabal Install_Cabal New - Fatal编程技术网

Windows ghc找不到我用cabal new install--lib构建和安装的库

Windows ghc找不到我用cabal new install--lib构建和安装的库,windows,haskell,cabal,cabal-install,cabal-new,Windows,Haskell,Cabal,Cabal Install,Cabal New,我正在与Cabal一起构建一个Haskell库,我想安装它以用于其他一些项目。我正在使用Windows PowerShell和新样式的Cabal命令。我有ghc 8.10.1和Cabal 3.2.0.0,并使用巧克力来安装它们cabalnewinstall--lib构建并安装库很好,没有警告。从--verbose输出中,我注意到Cabal提到了文件夹C:\Users\Liisi\AppData\Roaming\Cabal\store\ghc-8.10.1\package.db,它确实包含了我的包

我正在与Cabal一起构建一个Haskell库,我想安装它以用于其他一些项目。我正在使用Windows PowerShell和新样式的Cabal命令。我有ghc 8.10.1和Cabal 3.2.0.0,并使用巧克力来安装它们
cabalnewinstall--lib
构建并安装库很好,没有警告。从
--verbose
输出中,我注意到Cabal提到了文件夹
C:\Users\Liisi\AppData\Roaming\Cabal\store\ghc-8.10.1\package.db
,它确实包含了我的包

但是,当我试图编译一个包含使用该库的单个Haskell文件的测试项目时,ghc找不到该库。(这个测试项目本身并不是一个阴谋集团项目,因为我打算将这个库用于小型的、主要是单文件项目。)

ghc Test.hs
ghc--make Test.hs
都找不到库<代码>ghc打包列表未列出我的库的名称。在年(这可能是一个错误的问题),我得到建议尝试
ghc-package env=C:\Users\Liisi\.ghc\x86\u 64-mingw32-8.10.1\environments\default--make
,这一个确实有效-但是,它会挫败使库成为阴谋集团项目的主要目的(方便性和可用性)


我也有机会在OSX上测试我的软件包,一切正常。所以这可能是Windows特有的问题。

似乎有一个反复出现的问题,
cabal new install--lib
在全局默认位置写入包环境文件,但是,根据包环境搜索规则,ghc和ghci随后不会选择该环境。此处描述的创建本地包环境文件的解决方法是否有效?@danidiaz它确实有效。然而,这不是一个好的解决办法。它有点违背了软件包的目的——在软件包被更改时只安装一次,而不考虑依赖它的每个项目。如果我想要一个解决方法,我只需要在编译测试项目时添加一个-I标志和库源的相对路径。@danidiaz我想知道我做错了什么。我刚刚发现了阴谋集团新安装的另一个问题。当我使用它安装我自己的库,然后安装任何其他不相关的库(例如QuickCheck或megaparsec)时,我会遇到冲突<代码>无法解析依赖项:[\uu 0]未知包:aoide(用户目标)。(aoide是我音乐包的名称。)删除
用户/Liisi/AppData/Roaming/cabal
后,我可以再次安装外部库。