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能不能对这种 路径问题做个兼容, 如果超长了,报个我能看懂的错,报错把编译器版本都改了,也是无语。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值