在按照官方文檔安裝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點云相關的文章了,感覺自己要完蛋😄