对于一个新项目,我一直在尝试构建threepenny-gui
包,我过去已经做过很多次了,没有任何问题。然而这一次,我遇到了一条不寻常的错误消息:
> stack build
threepenny-gui > configure
threepenny-gui > Configuring threepenny-gui-0.9.0.0...
threepenny-gui > build
threepenny-gui > Preprocessing library for threepenny-gui-0.9.0.0..
threepenny-gui > Building library for threepenny-gui-0.9.0.0..
threepenny-gui > [ 1 of 29] Compiling Foreign.JavaScript.Include
threepenny-gui > [ 2 of 29] Compiling Foreign.JavaScript.Resources
threepenny-gui > ghc.exe: unable to load package `regex-posix-0.96.0.0'
threepenny-gui > ghc.exe: | C:\sr\snapshots\14724cfd\lib\x86_64-windows-ghc-8.8.4\regex-posix-0.96.0.0-11M5Q2Uki3ACYikP2WXOuq\HSregex-posix-0.96.0.0-11M5Q2Uki3ACYikP2WXOuq.o: unknown symbol `regerror'
-- While building package threepenny-gui-0.9.0.0 using:
C:\sr\setup-exe-cache\x86_64-windows\Cabal-simple_Z6RU0evB_3.0.1.0_ghc-8.8.4.exe --builddir=.stack-work\dist\29cc6475 build --ghc-options " -fdiagnostics-color=always"
Process exited with code: ExitFailure 1
Progress 1/2
现在,快速谷歌显示此错误消息has以前曾出现过——2010 年,之后通过 GHC 更新修复了该问题。我尝试更改 GHC 版本(上面的输出是使用 GHC 8.8.4 的),但它也不适用于 8.8.3 或 8.8.2。我也尝试删除regex-posix
并再次重新安装,但这也不起作用。至此,我必须承认这个错误彻底难住了我;还有其他人知道可能是什么原因造成的吗?如果是这样,我该如何解决它?
1 具体来说,我删除了C:\sr\snapshots\14724cfd\lib\x86_64-windows-ghc-8.8.4\regex-posix-0.96.0.0-11M5Q2Uki3ACYikP2WXOuq
and C:\sr\snapshots\14724cfd\pkgdb\regex-posix-0.96.0.0-11M5Q2Uki3ACYikP2WXOuq.conf
,并且做了ghc-pkg unregister regex-posix
.
This 结果是 https://github.com/commercialhaskell/stack/issues/5404#issuecomment-735616311成为一个问题regex-posix
而不是threepenny-gui
。这个问题可以通过启用 Cabal 标志来解决_regex-posix-clib
。要设置它,我首先需要注销以前版本的regex-posix
:
> stack --resolver lts-16.23 exec -- ghc-pkg unregister regex-posix-0.96.0.0 --force
然后我需要使用正确的标志重建它:
> stack build regex-posix-0.96.0.0 --flag regex-posix:_regex-posix-clib --resolver lts-16.23
之后stack build threepenny-gui --resolver lts-16.23
那是成功的。 (出于某种原因,我需要在这些命令中显式指定解析器。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)