解決 Embarcadero C++ Builder 10.2 頻繁出現 LME200 Unable to perform link 的錯誤

今天編輯程式,不斷出現這個問題。

[ilink32 Warning] Warning: Error detected (LME200)

[ilink32 Error] Error: Unable to perform link

這問題其實在好一陣子之前已經出現過,當時的解決方法是把 C++ Builder 和我寫的程式目錄都設為防毒程式的白名單,就沒有這個問題了。

後來的日子,偶爾還是會出現,但有時重新編譯二、三次,問題就不見了。因此也沒有特別去管它。


今天情況有點不同,出現次數非常頻繁,多到讓我受不了,無法再寫程式,只好上網求助 Google 大神。

有人提到一個方法,它說在這個目錄下 

C:\Program Files (x86)\Embarcadero\Studio\xxx\bin

找到 ilink32.exe

按滑鼠右鍵選內容 -> 相容性 -> 相容模式 ,選擇相容於 Windows 7

另外還建議把 ilink32.exe 設定成以系統管理員身份執行,同時  C++ Builder 也用系統管理員身份執行

一開始我只用相容 Windows 7 就解決問題了。結果正在寫本文時,重新測試,突然發現上面三種方法都用也不行了。(悲哀 sad)

再來找其他方法吧 .....


晚上又找到一個方法,有人說用系統管理員開啟 cmd 命令列視窗,輸入如下命令:

bcdedit /set IncreaseUserVa 3072

然後重新開機即可。

這裡找到該命令的意思,意思是原本在 32 位元有 4 G 的虛擬地址空間,2G 給應用程式,2G 給系統程式。上面的調法就是應用程式調到 3 G,所以系統剩 1 ~ 2 G。

不過我是 64 位元,不知道有什麼差別?還有,如果要調回 2G ,應該就是用

bcdedit /set IncreaseUserVa 2048

以上這個方法目前測試成功。


如果還不行的話,還有這個網頁有另一個方法。

就是找這支程式 editbin.exe,先備份上面提到的 ilink32.exe,執行

editbin.exe /LARGEADDRESSAWARE ilink32.exe

該網頁提到:

可能原因是這種32位程序在64位系統中工作時對超出內存2^32的部分尋址有困難,導致出錯,也許是內存釋放不夠徹底,在編譯幾個大項目後,便很容易出現此錯誤,即使是空項目,所以只能重啟系統。可使用VC自帶的editbin.exe可以讓這兩個文件使用大內存。

如果再出現同樣的錯誤,就要試最後這個方法了。


又發現一個方法:

在這一個網頁有提到,可以在此頁下載 LAMarker.exe

執行方法為

LAMarker.exe -M -F"C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\ilink32.exe"

如果程式放在上面提到的 bin 目錄中,也可以直接執行

LAMarker.exe -M -Filink32.exe

它會自動備份 ilink32.exe.old

這方法我也試過,是有用的。(但上面許多方法,也曾經有用,但也失靈過。)

重要度:
電腦標籤:

發表新回應