在按照官方文档安装PCL库时,发现如下danteng的错误,内心极度崩溃!以前也遇到过,当时暂时解决了该问题,现在又遇到了重新解决一次,为了方便以后遇到该问题时不再不知所措,现做个笔记!
一、环境
win10 X64环境,没什么好说的
二、问题原因
一般来说就是安装了太多软件或者配置太多的库,导致环境变量的总长度数量超过2047个(这是微软设置的,不知道为啥这么设计,感觉到坑),直白来说就是微软定义的path这个变量名的容量就是2047个字符,如果用户给的字符多于2047个则造成字符溢出,相对于你定义了一个2048个长度的数组,结果你想保存3000个数,在你访问下标为2048或者大于2048的时候就会报错一样(不知道这样理解对不对,不对的请在下面留言)。
三、解决办法
在网上找个多个解决方法,但是博主只尝试过第一个方案,第二个方案由于涉及到注册表这个坑爹玩意,博主曾经玩注册表把电脑玩到只能重装系统,自此再也不敢动注册表,也就没尝试(在此和那些配置环境就容易出BUG同病相怜的小伙伴拥抱一下)。
1.利用嵌套原则增加path的容量
系统变量里面每个变量都只有2048长度以内的容量,但是我可以把另一个系统变量当成Path的环境变量以此来做嵌套。举个栗子:读过修真小说的都知道,储物戒子可以放物品,假设储物戒子都是可以存放2047个单位空间的物品,而默认一个人只能带一个储物戒子,那么一个人如何带超过2047个单位空间的物品呢?很简单,我把装满物品的戒子都放到一个储物戒子A中,那么我只带A这个储物戒就可以办到了(当然了很多修真小说的储物戒是不可嵌套,在此只是举例罢了。)用码农的话来说,就是我创建的是个2048个长度的数组A,但是这个数组A的每个长度空间可以再放一个2048个长度的数组,以此类推。
说完理论,再用图来演示下实际操作哈!新增变量是和原始变量放在系统变量目录下,取名可以随意,这里取名path1是为了方便辨识path1就是path的“子变量”!就是把变量路径放到path1当中。
path里面的path1写法:
2.修改注册表(慎重!!!)
打开注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
双击右边的 Path (REG_EXPAND_SZ),把内容追加进去,保存并重启电脑,搞定。
转载于:https://www.cnblogs.com/nikosoft/p/11044426.html
PS:第一个方法是很久之前做的,姑且当作自己的吧!之后可能会更新3D点云相关的文章了,感觉自己要完蛋😄