Windows的文件命名长度的坑 | 您所在的位置:网站首页 › windows的文件名长度必须在多少字符以内 › Windows的文件命名长度的坑 |
1. 背景 折腾Windows的自动化编译,坑有点多,后面搞了Incredibuild并行编译,也遇到了类似的坑。 环境: Qt5.8.0 + vs2015 Qt5.15.8 + vs2019 之前遇到的问题,包括2015和2019都有这种问题,现象就是本地编译正常,用qtcreator编译没有问题,用vs编译也没有问题,但是用 bat脚本编译就是不通过。 报错也是看不懂,用2019的版本编译的报错如下: vs2019 error msb8020 the build tools for v141 vs2017 vs2105的报错也是看不懂,不知道vs编译器是怎么做的,还有王法么。。。 2. 解决日志 查了我一天,也没看懂。 最后对比 目录区别,发现文件夹名字比较长。 又继续看了bat脚本编译生成的vcproj,发现里面有目录是相对的路径,如“../../../”这种。 但是用vs2019打开后,发现“../../../”这种相对路径编程绝对路径了,经过之前解决过得vs2015的恶心问题,初步判断是文件夹长度导致的问题。估计是 会有 “d:/folder1/folder2/../.."这种路径,超过了Windows的路径长度限制。编译器也不报这个错,报的都是看不懂的错,也是对Windows蛮无语的。 最后,把文件夹名称改成缩写, 脚本编译也没有问题了,这里有个问题,我这个文件夹名称已经是处于临界值了,如果后面再加层级,也会有这种问题。 之前尝试过设置Windows的文件名长度限制,未果。 对Windows这种设计表示很无语。 3. 建议: 3.1. windows下用vs编译器,尽量控制文件目录深度,编译器和Windows自身的兼容性不好,如果有文件名路径太长,会报些诡异的错,但是用其他编译器可能没问题。让你自我怀疑 3. 2. vs能不能对这种 路径问题做个兼容, 如果超长了,报个我能看懂的错,报错把编译器版本都改了,也是无语。 |
CopyRight 2018-2019 实验室设备网 版权所有 |