今天編輯程式,不斷出現這個問題。
[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 就解決問題了。結果正在寫本文時,重新測試,突然發現上面三種方法都用也不行了。(悲哀 )
再來找其他方法吧 .....
晚上又找到一個方法,有人說用系統管理員開啟 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
這方法我也試過,是有用的。(但上面許多方法,也曾經有用,但也失靈過。)
- 瀏覽次數:25872
發表新回應