繁体   English   中英

如何处理 cmd.exe 中的长路径

[英]How to handle long paths in cmd.exe

我正在帮助一些开发人员创建 Linux 项目的 Windows 端口,其中源树非常深,总路径长度远远超过 260 个字符。 至少现在,只需要运行 gcc 编译。 源码树共享Linux/Windows,对外维护; 修改树结构或更改文件名(例如符号链接,或使用 subst 挂载子树)不是可行的替代方案。

更复杂的是:构建将在 Windows 风格的 Docker 容器中进行。 因此,解决方案仅限于可以在 Windows docker 基础映像上运行的解决方案。

我已将 HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled 值设置为 1,并且我假设如果我创建自己的应用程序,我可以提供一个应用程序清单为 true。 但我没有创建 gcc,那么我如何告诉 cmd.exe gcc 不限于 260 个字符的路径长度? (设置注册表变量本身是不够的!)

从 cmd.exe 运行 gcc 是否需要 cmd.exe 可以处理长路径 - 可以吗? 我可以使用另一个可以处理长路径的 shell(并且不受任何底层 cmd.exe 的限制吗?

为什么不完全避免 cmd.exe? 只需使用 MSYS2 shell ( https://www.msys2.org/ )。

这解决了很多移植问题,实际上允许您使用相同的构建工具(autoconf 甚至 cmake 和介子)。

我在 Windows 上使用这个环境很多年了。 事实上,我完全像这样构建了最新的 GCC 和 MinGW-w64(参见: http://winlibs.com/ )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM