web-dev-qa-db-ja.com

C ++ Builder XE7 LME288エラー

突然、突然、LME288リンカーエラーが発生します。

[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ilc: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ild: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ilf: 0x00010000 / 0x0a000000
[ilink32 Warning] Warning: D:/Projects/TrainFever Game Manager/TFGM/Win32/Debug/TFGameManager.ils: 0x0003b000 / 0x08000000
[ilink32 Warning] Warning: unknown heap name   : 0x08000000 / 0x08000000
[ilink32 Warning] Warning: Error detected (LME288)
[ilink32 Error] Error: Unable to perform link

AVがインストールされておらず、プロジェクトは1年以上正常に実行されています。私が試してみました:

  • 増分リンカーは無効/有効、違いはありません...
  • / debug内のすべてのファイルを手動で削除しても、変更はありません...
  • フルビルド、違いはありません...
  • コンピュータを再起動しますが、変更はありません...

これは here の前に尋ねられましたが、実際の説明や解決策は提示されませんでした。

これを修正するために他に何ができますか?

編集
[。

31
Max Kielland

動作しているように見える回避策を見つけました。

破損した一時ファイルと関係があるようです。システムディスクで「ディスククリーンアップ」を行った後、なんとか動作するようになりました。

リスト内のすべてのファイル(すべてのチェックボックスがオン)と「システムファイルのクリーンアップ」も削除しました

その後、再起動しなくてもコンパイルとリンクができました。インクリメンタルリンクでさえ機能し始めました!

4
Max Kielland

注:2017年4月のC++ Builderの10.2 Tokyoリリースで、エンバカデロはリンカーをアップグレードし、明らかにこの問題を解決しました(テストしていません):以前の2倍の64ビットシステムで最大4GB(一部のお客様は、PEヘッダーのビットを切り替えることで、リンカーをLAEにハッキングしました。コードはLAE-このハックがインクリメンタルリンクやその他の機能が正しく機能しないことを認識してください。)」https://community.embarcadero.com/blogs/entry/what-s-new-in-c-builder -10-2-part-1-the-linker

ただし、2017年5月24日に、Ashleigh Quickは10.2東京のリンカーはまだ問題を解決しないと報告しました:https://quality.embarcadero.com/browse/ RSP-12869

しかし、まだ望みがあります:10.2 Tokyoから、LARGEADDRESSAWAREとリンカーヒープサイズを制御するいくつかの新しいオプションがあります。 Dieter Woellner 2017年10月26日に報告 一時的にC++-Linkerを設定|高度な| 「-GF:LARGEADDRESSAWARE」への詳細オプションエントリにより、問題が解消されました。しかし、問題は戻り、彼は、TDSヒープサイズを0x08000000未満の値に設定すると、リンク時のエラー/クラッシュを回避できることを発見しました...今のところ

=====================================

私はリンカーをハッキングしてLAAにしたため、インクリメンタルリンク(これは不要)を妨害し、問題を解決した顧客の1人です。バージョン10.1以前のリンカーを引き続き使用する予定で、インクリメンタルリンクが不要な場合は、先に進んでください。

=====================================

_/LARGEADDRESSAWARE_で_ilink32.exe_フラグを設定することで問題を解決しました。元のソリューションはeditbinを使用して、島田裕之から提供され、1/12に http://qc.embarcadero.com/wc/qcmain.aspx?d=134775 に投稿されました。 2016年。彼はそれを_bcc32.exe_;にも適用しました。必要ありませんでした。

公共サービスとして、パッチを適用したilink32.exeのバージョンをここに投稿しました。

いずれかを使用するには、RAD= Studioバイナリディレクトリ内の_ilink32.exe_の名前を変更します(例:C:\Program Files (x86)\Embarcadero\Studio\17.0\bin for RAD Studio Seattle、または_...\18.0\bin_ for Berlin)、そしてその場所に私のものをコピーして、名前を_ilink32.exe_に変更します。

[注:これらの/ LAAリンカーは、すべてではないが多くのユーザーの問題を解決します。 2016年7月25日の@ -Andrew Leggetの投稿( https://quality.embarcadero.com/browse/RSP-13247 ]を参照)

この問題は長い間存在しており、XE3、XE5、XE7、XE8に限定されるものではありません... https://quality.embarcadero.com/browse/RSPで長い議論/嘆きがあります-13247 これがRAD Studioの1つのバージョンで修正されたが、後のバージョンでバックアウトされた理由について;明らかに/ LAAは静的RTLとインクリメンタルにリンクするときに失敗しました。 28/Mar/16 12:14 PMそのスレッドでのデニスジョーンズによる投稿によると、/ LAAパッチは他のリンカーエラー "EXE1825"または "メモリ不足"に対処しません。

Ilink32.exeにパッチを適用できる3つの方法を確認するには、以下をお読みください...


  1. lamarkerツールを使用してラージアドレス認識フラグを設定します。ダウンロード可能: http://cc.embarcadero.com/Item/30459 =(Doug Hayのおかげ、2016年7月19日の投稿 https://quality.embarcadero.com/browse/RSP-13247 ):

    _lamarker -M -Filink32.exe_

C:\Program Files (x86)\Embarcadero\Studio\17.0\bin(または_...\18.0\bin_)ディレクトリで直接これを行うことができます。元の_ilink32.exe_を_ilink32.exe.old_に変更します-許可がある場合)

-または-

  1. MS Visual Studioからeditbinを使用します(既にインストールされている場合(Microsoftはeditbinを実行する必要があると主張しています) IDE内)。準備段階として、_bcc32.exe_と_ilink32.exe_をコピーして、UACのブロックを防止します(およびバックアップします)

    copy "C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin\bcc32.exe" .

    copy "C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin\ilink32.exe" .

    _editbin /LARGEADDRESSAWARE bcc32.exe_

    _editbin /LARGEADDRESSAWARE ilink32.exe_

-OR-

  1. masm32パッケージのeditbinを使用してLarge Address Awareフラグを設定します。

http://www.masm32.com/download.htm からダウンロードすると、_c:\masm32\bin\editbin.exe_が作成されます。 MASM32のインストール中にいくつかの警告(序数201および203を含む)が表示されましたが、自己テストに合格し、必要なのは_editbin.exe_だけでした。

21
circlepi314

Windows 10にインストールされたRAD Studio XE8でこの問題が発生しました。Windows7(x86)にインストールされた場合、RAD Studio XE8は正常に動作しました。

Windows 10(x86)にアップグレードした後、恐ろしい未知のヒープLME288エラーに遭遇しました。最初はWindows 10には表示されませんでしたが、何かをインストールするとポップアップします。コンピューターをWindows 7に復元すると、コンピューターは消えます。

ネットで少し調べた後、解決策を見つけました。 ilink32.exeにメモリの問題があり、コンピュータの起動時に3GBのメモリスペースを有効にする必要があります。このエラーが再び表示される場合の対処方法は次のとおりです。

  1. 管理者としてコマンドプロンプトを実行します。
  2. タイプ(引用符なし) "bcdedit/set IncreaseUserVa 3072"
  3. コンピューターを再起動します。

その後、ilink32は適切に動作します。

新しいバージョンのAcronis True Image(2016)をインストールした後、LME288エラーが戻ってきました。ただし、ここでbcdeditソリューションを実行すると、RAD Studio XE8リンカー!!!

13
Drewski

管理者としてXE8を実行するだけで修正されました。

4
AashishPatel

Drewski として、Windows 10(x64)へのアップグレード後にLME288エラーが発生しました。

ilink32.exeData Execution Prevention設定を変更すると、エラーが消えました。

  • システムのプロパティ->システムの詳細設定->パフォーマンス->設定->データ実行防止
  • 選択したものを除くすべてのプログラムとサービスに対してDEPをオンにします-> ilink32.exe
3
manlio

私の場合、ここで述べた他のすべてのオプションを試してもうまくいきませんでした。

このトリックは、Windows 10マシンのシステム設定で仮想メモリの量を手動で設定することでした。オペレーティングシステムによって自動的に管理されるように設定されていましたが、手動値に変更すると(最小値が自動的に割り当てられた値より小さく、実際に使用されている場合でも)、リンカが再び機能しました。

私の場合、OSは1,600 Mbなどを割り当てていました。最小値を1,024に、最大値を3,072に設定して再起動しましたが、リンカーは正常に動作しています。使用量は1,024です(推奨値が〜1,900であっても)。

2
Rodrigo Gómez

W10を再起動するとXE5でこの問題は解決しましたが、増分ビルドを非アクティブ化しています

1
Lotfi

Bitdefender IS 2016:

Bitdefender->モジュール->アンチウイルス->除外->除外されたプロセス->「...\bin\ilink32.exe」を追加->許可

1
ravdouha

私は、これに苦しんでいる誰かを助けることを願う別の解決策を持っています。

私はすべてを試してみましたが、以前に提案された解決策はどれもうまくいきませんでした。ディスクのクリーンアップは役に立ちませんでした。これは明らかに長年存在していたC++ Builderのバグであり、2015年の時点でXE8でも修正されていません。

幸いなことに、同じプロジェクトがコンパイルされた作業環境の別のコンピューターがありました。すべてのファイル(* .exe、*。objなど)をそのコンピューターの出力ディレクトリ(Win32/Debug)から問題が発生したコンピューターにコピーし、C++ Builderを魔法のようにまっすぐに設定しました。その後、すべてのビルドが機能し始めました。

1
Cozzamara

IDE言語をフランス語から英語にBDSSetLang.exeで変更すると、LME288エラーが解決しました!

0
Lotfi

解決策は非常に簡単です。WindowsのPATH環境変数が2047バイトの制限を超えています。

こちらの説明をご覧ください: http://blog.bitart.at/lme288/ [ドイツ語]

編集:私の「解決策」は数ヶ月しか続きませんでした。 Microsoft Visual Studioをインストールした後、問題が返されました。

別の回答で述べたように:ilink32.exeにパッチを当てる

lamarker -M -Filink32.exe

正しい解決策のようです。

0
Herwig

Embarcaderoのインストールフォルダー(C:\ Program Files(x86)\ Embarcaderoなど)がすべてのウイルス対策スキャンから除外されるようにすることで、これを修正しました。

0
RobinP

同じ問題があり、Windowsの仮想メモリを増やすことで解決しました(800Moと非常に低く、現在は約4 Goです)。

0
RickInfoDEV

Windows 10(x64)、Rad Studio XE Berlin(インクリメンタルリンクが有効)。

アンチウイルスWindow Defenderスキャンから「C:\ Program Files(x86)\ Embarcadero\bin」を除外することで問題を修正しました。

0
Andrey Kouvaev