对于一个新的项目,我一直试图构建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现在,一个快速的谷歌显示,这一错误信息已经见过-在2010年,之后,它被修复了一个GHC更新。我试着修改GHC版本(上面的输出是使用GHC8.8.4),但它也不适用于8.8.3或8.8.2。我还尝试删除regex-posix1并再次重新安装它,但这也不起作用。在这一点上,我必须承认,这个错误已经完全困扰了我;其他人是否知道是什么导致了它,如果是的话,我如何修复它?
具体来说,我删除了C:\sr\snapshots\14724cfd\lib\x86_64-windows-ghc-8.8.4\regex-posix-0.96.0.0-11M5Q2Uki3ACYikP2WXOuq和C:\sr\snapshots\14724cfd\pkgdb\regex-posix-0.96.0.0-11M5Q2Uki3ACYikP2WXOuq.conf,并做了ghc-pkg unregister regex-posix。
发布于 2020-12-30 07:35:46
这个结果发现是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成功。(出于某种原因,我需要在这些命令中显式地指定解析器。)
https://stackoverflow.com/questions/64021952
复制相似问题