由于路径长度限制,如何在Windows上解决cabal沙箱构建错误?

时间:2015-06-29 21:12:32

标签: haskell cabal cabal-install gnu-toolchain

有一段时间我对在我的Windows机器上经常在cabal沙箱中进行安装/构建失败这一事实感到困惑。我最终发现故障是由某些超过MAX_PATH限制的路径引起的(路径实际上限制为255个字符)。

作为一个具体示例,如果我在cabal沙箱文件夹中尝试cabal install data-default-instances-old-locale-0.0.1,则会失败。在此过程中的某个时刻,Cabal使用类似ar.exe的路径调用dist/dist-sandbox-72eb259b\build\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a-45644\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a。这是相对于临时目录下的工作文件夹(我设置为C:\Temp),因此完整路径可以是C:\Temp\data-default-instances-old-locale-0.0.1-18744\data-default-instances-old-locale-0.0.1\dist\dist-sandbox-72eb259b\build\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a-18744\libHSdata-default-instances-old-locale-0.0.1-6jcjjaR25tK4x3nJhHHjFM.a

最终路径长度为272个字符,远远超过255个限制。

可以在Windows上处理更长的路径,但这并非易事,在任何情况下,ar似乎都没有做任何必要的处理它们(这并不奇怪,因为它只是GNU工具的一个端口链)。

我觉得这是可预见的未来的情况,但也许有人可以想到一个解决方案?

1 个答案:

答案 0 :(得分:3)

这是在最新版本的cabal-install中修复的。升级应解决问题。