日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm33”或更大的命令行选项重新编译

發布時間:2023/12/31 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm33”或更大的命令行选项重新编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編譯 ORB_SLAM的Release版本時,出現了此問題:

??????????? 錯誤 2 error C3859: 超過了 PCH 的虛擬內存范圍;請使用“-Zm465”或更大的命令行


修改方法:

????? 1. 找到 工程->屬性->c/c++->命令行->其他選項
???? 2. 輸入/Zm100,其中后面的數字可以更大


原因:

???? 為了加快boost的編譯,使用的預編譯頭。而且加的boost的頭文件比較多,導致pch文件超過了默認值。


定義:


/Zm(指定預編譯頭的內存分配限額):確定編譯器分配的用于構造預編譯頭的內存量。格式:/Zmfactor。
factor:一個比例因子,確定編譯器用于構造預編譯頭的內存量。
factor 參數是編譯器定義的工作緩沖區的默認大小所占的百分比。 factor 參數的默認值是 100 (%),但您可以指定更大或更小的數量。 在早期版本的 Visual C++ 中,編譯器使用幾個離散堆,每個堆都有一定的限制。 當前,編譯器可根據需要動態增加堆,最多可增加到總堆大小限制,并且只需要固定大小的緩沖區即可構造預編譯頭。 因此,很少需要 /Zm 編譯器選項。
如果在您使用 /Zm 編譯器選項時,編譯器用完堆空間,發出 C1060 錯誤消息,則您可能保留了太多的內存。 可考慮移除 /Zm 選項。 如果編譯器發出 C1076 錯誤消息,則伴隨的 C3859 消息會指定您在使用 /Zm 編譯器選項重新編譯程序時應使用的 factor 參數。

factor的值?? ? 內存分配限制
10?? ??? ???????? 7.5 MB
100?? ??? ?????? 75 MB
200?? ??? ?????? 150 MB
1000?? ??? ? ?? 750 MB
2000?? ??? ???? 1500 MB

總結

以上是生活随笔為你收集整理的error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm33”或更大的命令行选项重新编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。