Unable to perform link c builder ошибка

230 / 60 / 17

Регистрация: 11.03.2010

Сообщений: 294

1

13.06.2012, 21:53. Показов 50575. Ответов 8


Студворк — интернет-сервис помощи студентам

Здравствуйте, у меня такая вот проблема:
компилировался удачно, без ошибок, но программа вылетала на строке:
int index = 0;
причем этот index был локальной переменной, и такой же точно нету в помине нигде
Потом он что-то вылетел(компилятор) закрылся
Я ничего не менял в коде, но ни с того ни с сего, начал выдавать такую вот ошибку:

[ILINK32 Error] Error: Unresolved external ‘_Form1’ referenced from D:CODEC++HEATINGDEBUGPROJECT1.OBJ
[ILINK32 Error] Error: Unresolved external ‘TForm1::’ referenced from D:CODEC++HEATINGDEBUGPROJECT1.OBJ
[ILINK32 Error] Error: Unable to perform link



0



1569 / 505 / 48

Регистрация: 04.04.2009

Сообщений: 1,891

13.06.2012, 22:00

2

Hell Knight,
1. Удалите объектные файлы
2. Проверьте заголовочные файлы на наличие чего-то лишнего.
3. Если не разберетесь, выложите проект.



1



230 / 60 / 17

Регистрация: 11.03.2010

Сообщений: 294

13.06.2012, 22:29

 [ТС]

3

1) удалил объектники, но проблема осталась не решена
2) ничего подозрительного в заголовочниках не нашёл
3) не нашёл, как файл прикрепить…

З.Ы. нашёл решение проблемы:
в файле Project.cpp
у меня у Unit’a там написано старое имя формы, то бишь по умолчанию Form1, заменил на то которое я указывал fmMain
И ошибка пропала…



2



1569 / 505 / 48

Регистрация: 04.04.2009

Сообщений: 1,891

13.06.2012, 22:33

4

Hell Knight,
Вот так:

Цитата
Сообщение от Hell Knight
Посмотреть сообщение

нашёл решение проблемы

Ну здорово

Миниатюры

Error: Unable to perform link
 



0



Пацак

2 / 2 / 0

Регистрация: 21.02.2013

Сообщений: 25

08.03.2013, 22:22

5

Здравствуйте, столкнулся с той же проблемой на XE3, под Delphi всё хорошо, а на C++ выскакивает ошибка:

Checking project dependencies…
Compiling Project2.cbproj (Debug, Win32)
bcc32 command line for «Project2.cpp»
c:program filesembarcaderorad studio10.0binbcc32.exe -D_DEBUG -D_RTLDLL;USEPACKAGES -n.Win32Debug -I»c:program filesembarcaderorad
studio10.0includewindowsvcl»;C:ProjectsT;»C:Program FilesEmbarcaderoRAD Studio10.0includeboost_1_39boosttr1tr1″;»C:Program
FilesEmbarcaderoRAD Studio10.0includeboost_1_39″;»c:program filesembarcaderorad studio10.0include»;»c:program filesembarcaderorad
studio10.0includedinkumware»;»c:program filesembarcaderorad studio10.0includewindowscrtl»;»c:program filesembarcaderorad
studio10.0includewindowssdk»;»c:program filesembarcaderorad studio10.0includewindowsrtl»;»c:program filesembarcaderorad
studio10.0includewindowsvcl»;»C:Program FilesFastReportsLibD17″;»C:Program FilesRaizeCS5LibRS-XE3Win32″;»C:UsersPublicDocumentsRAD
Studio10.0hpp» -y -Q -k -r- -c -tM -tU -tW -C8 -o.Win32DebugProject2.obj -w-par -Od -v -vi- -H=.Win32DebugProject2.pch -H Project2.cpp
bcc32 command line for «Unit2.cpp»
c:program filesembarcaderorad studio10.0binbcc32.exe -D_DEBUG -D_RTLDLL;USEPACKAGES -n.Win32Debug -I»c:program filesembarcaderorad
studio10.0includewindowsvcl»;C:ProjectsT;»C:Program FilesEmbarcaderoRAD Studio10.0includeboost_1_39boosttr1tr1″;»C:Program
FilesEmbarcaderoRAD Studio10.0includeboost_1_39″;»c:program filesembarcaderorad studio10.0include»;»c:program filesembarcaderorad
studio10.0includedinkumware»;»c:program filesembarcaderorad studio10.0includewindowscrtl»;»c:program filesembarcaderorad
studio10.0includewindowssdk»;»c:program filesembarcaderorad studio10.0includewindowsrtl»;»c:program filesembarcaderorad
studio10.0includewindowsvcl»;»C:Program FilesFastReportsLibD17″;»C:Program FilesRaizeCS5LibRS-XE3Win32″;»C:UsersPublicDocumentsRAD
Studio10.0hpp» -y -Q -k -r- -c -tM -tU -tW -C8 -o.Win32DebugUnit2.obj -w-par -Od -v -vi- -H=.Win32DebugProject2.pch -H Unit2.cpp
brcc32 command line for «Project2.vrc»
c:program filesembarcaderorad studio10.0bincgrc.exe -c65001 Project2.vrc -foProject2.res
ilink32 command line
c:program filesembarcaderorad studio10.0binilink32.exe -L.Win32Debug;»c:program filesembarcaderorad studio10.0libWin32debug»;
C:ProjectsT;»c:program filesembarcaderorad studio10.0libwin32release»;»c:program filesembarcaderorad studio10.0libwin32releasepsdk»;
«C:Program FilesFastReportsLibD17″;»C:Program FilesRaizeCS5LibRS-XE3Win32″;»C:UsersPublicDocumentsRAD Studio10.0DCP» -j.Win32Debug;
«c:program filesembarcaderorad studio10.0libWin32debug»;C:ProjectsT;»c:program filesembarcaderorad studio10.0libwin32release»;
«c:program filesembarcaderorad studio10.0libwin32releasepsdk»;»C:Program FilesFastReportsLibD17″;»C:Program
FilesRaizeCS5LibRS-XE3Win32″;»C:UsersPublicDocumentsRAD Studio10.0DCP» -l.Win32Debug -v
-GA»C:UsersEB78~1AppDataLocalTempvfs7E08.tmp»=»C:ProjectsTUnit2.dfm» -aa -V5.0 -G8 -Tpe c0w32w rtl.bpi vcl.bpi memmgr.lib sysinit.obj
.Win32DebugProject2.obj .Win32DebugUnit2.obj , .Win32DebugProject2.exe , .Win32DebugProject2.map , import32.lib cp32mti.lib , ,
Project2.res
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ilc: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ild: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ilf: 0x00010000 / 0x0a000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ils: 0x00040000 / 0x08000000
[ilink32 Warning] Warning: unknown heap name : 0x08000000 / 0x08000000
[ilink32 Warning] Warning: Error detected (LME288)
[ilink32 Warning] Warning: Unable to perform incremental link — performing full link…
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ilc: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ild: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ilf: 0x00010000 / 0x0a000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ils: 0x00040000 / 0x08000000
[ilink32 Warning] Warning: unknown heap name : 0x08000000 / 0x08000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ilc: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ild: 0x00010000 / 0x08000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ilf: 0x00010000 / 0x0a000000
[ilink32 Warning] Warning: C:/Projects/T/Win32/Debug/Project2.ils: 0x00040000 / 0x08000000
[ilink32 Warning] Warning: unknown heap name : 0x08000000 / 0x08000000
[ilink32 Warning] Warning: Error detected (LME288)
[ilink32 Error] Error: Unable to perform link
Failed
Elapsed time: 00:00:07.5

И на пустых проектах, и в FireMonkey. Проблема началась сразу после установки, переустановка не помогает.
ОС Windows 7.

Добавлено через 6 минут
Других версий Rad Studio, на этом компьютере, ранее установлено не было.

Добавлено через 5 минут
Unit2.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <vcl.h>
#pragma hdrstop
 
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
}

Unit2.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:     // User declarations
    __fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif



0



1 / 1 / 0

Регистрация: 07.06.2014

Сообщений: 49

28.03.2018, 16:31

6

Здравствуйте! Собирал проект из 90 форм и столкнулся с точно такой же проблемой: множество варнингов и ошибка unable to perform link. ОС Windows 10.
Мне помогли следующие мероприятия: через командную строку в режиме администратора нужно выполнить команду bcdedit /set IncreaseUserVa 3072 (студия должна быть закрыта). Затем перезагрузить компьютер. После этого проект успешно скомпилировался и запустился. Возможно, кому-то этот опыт поможет.



1



D1973

29.03.2018, 14:56

Не по теме:

Цитата
Сообщение от conde
Посмотреть сообщение

Собирал проект из 90 форм

:swoon:



0



0 / 0 / 0

Регистрация: 11.04.2020

Сообщений: 7

01.03.2021, 17:24

8

@conde А что вы собственно сделали?



0



0 / 0 / 0

Регистрация: 10.02.2021

Сообщений: 67

12.03.2021, 21:31

9

выскочила та же ошибка [ilink32 Error] Error: Unable to perform link
просто откомпелировал 1 раз проект на другом компьютере и вернул на свой. ?????



0



I got some information on this from Embarcadero which may help.

The error is an «out of memory», error. The reason for «Out Of Memory»
errors (which come in different guises) in the linker, is that the linker
has to pre-allocate memory in contiguous heaps that it then uses as it
links, in the past these heaps could not be adjusted, we had to do a best
guess, so in the new 64-bit linker (and has also been added to the 32-bit
linker) we allowed people to be able adjust the size of these heaps manually
when they needed to. Now the reason why these heaps can be problem is that
not all systems are the same, some people use different software that map
DLLs into the linker’s address space like Windows Hook DLLs, antivirus
software all these DLLs allocate memory INSIDE the linker’s (any application
really) address space and hence has an impact on the size of the heaps the
linker can allocate. So we added this ability to adjust the heaps manually,
but we also allocated the initial heaps quite big .

The 32bit linker has a new switch -GH, see below this is similar to the
ilink64 switch.

The syntax for the switch is:

-GH[heap name]=[number of bytes for the heap]»

This option -GH exists from XE3 Update 1 onwards but evidently is not documented?

To see which heap is out of memory you can try from command line.

MSBuild /p:Platform=Win32 /v:diag XXXX.cbproj

This provides additional information such as:

Overrun on linker heap: code

Linker Heaps


info 0x002d0000 0x0a000000

code 0x000d0000 0x00100000

data 0x00030000 0x08000000

bss 0x08000000 0x08000000

Fatal: Out of memory

The left side of the above output is number of bytes being used at the
moment and on the right the number of bytes allocated for the specific named
heap.

The default heap sizes the linker allocates at start up are:

«system», default size 0x08000000

«info», default size 0x0A000000

«code», default size 0x08000000

«rodata», default size 0x06000000 //readonly data

«data», default size 0x08000000

«bss», default size 0x08000000

«tds», default size 0x0FA00000

When you see the «unknown heap» this is normally the «tds» heap

Example to adjust tds heap to 0x0A000000 you would do -GHtds=0x0A000000

Hopefully this information helps you and others with the LME288 error.

Делал проект, практически закончил и решил создать независимый exe файл, который бы работал на других устройствах без ошибок. Проделал некоторые манипуляции в настройках проекта, а именно:
C++Linker -> Link with Dynamic RTL -> false
Runtime packages -> Link with runtime packages -> false
Сама программа с exe файла запускается и работает.
НО, при попытке запустить проект в Rad Studio выдает множество предупреждений, а затем ошибка: Unable to perform link.
Изменил настройки проекта обратно — то же самое.
Помогите,пожалуйста, решить проблему.
Заранее благодарю!


  • Вопрос задан

    более трёх лет назад

  • 4777 просмотров

На чтение 3 мин. Просмотров 79 Опубликовано 15.12.2019

I am trying to develop a dll in C++ builder xe, and I need to parse an XML file and for that I use the parser of C++ builder xe which generate a code that allows me to manipulate the xml file . The problem is I got errors at the compilation caused by generated code. here is what looks like the generated code:

the errorsI get is :

I think the mistake is the include in one of the generated file causes the problem. any ideas?

Содержание

  1. 1 Answer 1
  2. Not the answer you’re looking for? Browse other questions tagged xml parsing c++builder or ask your own question.
  3. Related
  4. Hot Network Questions

1 Answer 1

I’ve resolve the probleme by unchecking the linker option «Dynamic RTL», in the project options, and «Link with runtime packages»; in the packages options. I don’t know what is the relationship between this and the intial problem.

Not the answer you’re looking for? Browse other questions tagged xml parsing c++builder or ask your own question.

Hot Network Questions

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2019 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2019.11.15.35459

[ILINK32 Error] Error: Unresolved external ‘TForm1::’ referenced from D:PROGRAMSKURSDEBUGPROJECT1.OBJ
[ILINK32 Error] Error: Unable to perform link

Впервые сталкиваюсь с подобным. Можете объяснить, отчего это?

Код TForm1:
#include
#include
#pragma hdrstop

struct Notes
<
char Name[60]; // фамилия имя отчество
char Phone[16]; // телефон
int Age; // возраст
>;

//—————————————————————————
void __fastcall TForm1::Memo1Change(TObject *Sender)
<
// Если файл NoteBook.dat не существует, в Меmo1 посылается сообщение
if(!FileExists(«NoteBook.dat»))
<
Memo1->Text=»NoteBook.dat file does not exist»;
Button1->Enabled=false;
>
>
//—————————————————————————
void __fastcall TForm1::Button1Click(TObject *Sender)
<
Notes Note1;
// Получение значений из полей ввода
if((Edit1->Text!=»»)&&(Edit2->Text!=»»)&&(Edit3->Text!=»»))
temp=Edit1->Text;
strcpy(Note1.Name, temp.c_str());
temp=Edit3->Text;
strcpy(Note1.Phone, temp.c_str());
Note1.Age=Edit2->Text.ToInt();

// открытие файла для чтения
fstream file(«NoteBook.dat», ios::binary | ios::in | ios::out);
char str[80];
file.seekg(0); //указатель на первую запись

Окончательно запутался. Я так понял, TForm1 потерялся и попутался.

Добавляю:
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
<
// Если файл NoteBook.dat не существует, в Меmo1 посылается сообщение
if(!FileExists(«NoteBook.dat»))
<
Memo1->Text=»Файл NoteBook.dat не существует»;
Button1->Enabled=false;
>
>

Он мне выдает: [BCC32 Error] Unit1.cpp(27): E2136 Constructor cannot have a return type specification выделяя : TForm(Owner)

Иногда, при компиляции проектов, в RAD STUDIO С++ программа не запускается, пишет ошибку. Вы проверяете проект. Код правильный, но ошибка все равно есть и ругается ilink32 Error.

Например, такие ошибки:

[ILINK32 Error] Error: Unresolved external

[ILINK32 Warning] Warning: Public symbol

[ILINK32 Error] Error: Unresolved external

[ILINK32 Error] Error: Unable to perform link

Данная проблема связана с самим файлом ilink32.exe

Чтобы больше не «танцевать с бубном», есть пропатченные файлы для RAD STUDIO 10.

Для RAD STUDIO 10 B erlin: https://cloud.mail.ru/public/LQg5/noJRD9C46 (файл ilink32-10.1.exe переименовать в ilink32.exe и скопировать в папку с заменой)

Файл ilink32.exe в RAD STUDIO 10 лежит тут:

для 64 битной ОС

C:Program Files (x86)EmbarcaderoStudio17.0in

вдруг, внезапно, я получаю ошибка компоновщика 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, и проект работает нормально более года. Я пробовал:

  • инкрементный компоновщик отключен / включен, без разницы…
  • вручную удаление всех файлов в / debug, по-прежнему без изменений…
  • полная сборка, без разницы…
  • перезагрузите компьютер, никаких изменений…

об этом уже спрашивали здесь но никакого реального объяснения или решение не было представлено.

что еще я могу сделать, чтобы исправить это?

редактировать
Я попытался восстановить несколько других проектов, которые работали нормально в течение многих лет, и теперь я получаю ошибку LME288 для всех моих проектов.

14 ответов


Примечание: с выпуском 10.2 Tokyo C++ Builder в апреле 2017 года Embarcadero обновил компоновщик, по-видимому, решив эту проблему (я ее не тестировал): «компоновщик теперь знает большой адрес и может адресовать до 4 ГБ на 64-битной системе, в два раза больше предыдущей суммы. (Некоторые клиенты взломали компоновщик, чтобы быть LAE [sic] в прошлом, переключая бит в заголовке PE; поскольку код не был написан, чтобы быть LAE-осведомленным, этот хак предотвратил инкрементное связывание, а иногда и другие функциональность от правильного функционирования.)» https://community.embarcadero.com/blogs/entry/what-s-new-in-c-builder-10-2-part-1-the-linker

однако 24 мая 2017 года Ashleigh Quick сообщила, что компоновщик 10.2 Tokyo по-прежнему не решает проблему: https://quality.embarcadero.com/browse/RSP-12869

но есть еще надежда: начиная с 10.2 Tokyo, у вас есть несколько новых опций для управления Размеры кучи LARGEADDRESSAWARE и компоновщика. Дитер Woellner сообщено 26-Oct-2017 что, временно, установка записи c++-Linker | Advanced | Advanced Options в «-GF:LARGEADDRESSAWARE» устранила проблему. Но проблема вернулась, и он обнаружил, что если вы установите значение TDS Heapsize ниже 0x08000000, вы избежите ошибки/сбоя при связывании…пока.

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

я один из тех клиентов, которые взломал компоновщик, чтобы быть LAA, тем самым вмешиваясь в инкрементное связывание (которое мне не нужно) и решая мою проблему. Если вы собираетесь продолжать использовать компоновщики в версиях 10.1 или более ранних и вам не нужна инкрементная компоновка, читайте дальше.

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

я решил проблему, установив /LARGEADDRESSAWARE флаг ilink32.exe. Первоначальное решение пришло от
Хироюки Симада, используя editbin, и размещенные на http://qc.embarcadero.com/wc/qcmain.aspx?d=134775 на 1/12/2016. Он также применил его к bcc32.exe; мне не нужно.

в качестве государственной службы я разместил свой исправленный ilink32.exe версии здесь:

  • RAD Studio 10 Сиэтл:
    https://s3.amazonaws.com/public-mfay/ilink32.exe
  • RAD Studio 10.1 Berlin:https://s3.amazonaws.com/public-mfay/ilink32-10.1.exe

использовать Либо переименуйте свой ilink32.exe в каталоге двоичных файлов RAD Studio (например,C:Program Files (x86)EmbarcaderoStudio.0bin для RAD Studio Seattle, или ....0bin для Берлина), и скопируйте мой на его место, переименовав его в ilink32.exe.

[примечание: эти линкеры / LAA решают проблему для многих, но не для всех пользователей; см. сообщение @Andrew Legget от 7/25/2016 в https://quality.embarcadero.com/browse/RSP-13247]

эта проблема существует уже давно и не ограничивается XE3, XE5, XE7, XE8… В настоящее время идет длительная дискуссия / жалоба на https://quality.embarcadero.com/browse/RSP-13247 Что касается того, почему это было исправлено в одной версии RAD Studio, но отступило в более поздней версии; по-видимому, /LAA «привел к сбоям при постепенной связи со статическим RTL». Согласно сообщению 28/Mar/16 12:14 PM Денниса Джонса в этом потоке, патч /LAA не устраняет другие ошибки компоновщика «EXE1825» или «из памяти».

читать ниже, если вы хотите увидеть три способа ilink32.exe может быть исправлена…


  1. установите флаг с большим адресом с lamarker инструмент, загружаемый из:http://cc.embarcadero.com/Item/30459 (спасибо дугу Хэю, 19/Jul / 16 сообщение в https://quality.embarcadero.com/browse/RSP-13247):

    lamarker -M -Filink32.exe

(вы можете сделать это прямо в ваш C:Program Files (x86)EmbarcaderoStudio.0bin (или ); он будет переименуйте оригинал ilink32.exe to ilink32.exe.old — если у вас есть разрешение)

—или—

  1. использовать editbin С MS Visual Studio, если у вас уже установлен такой (Microsoft утверждает, что editbin должен выполняться из среды IDE). В качестве предварительного шага скопируйте bcc32.exe и ilink32.exe чтобы предотвратить блок UAC (и поддержать их вверх)

    copy "C:Program Files (x86)EmbarcaderoRAD Studio.0binbcc32.exe" .

    copy "C:Program Files (x86)EmbarcaderoRAD Studio.0binilink32.exe" .

    editbin /LARGEADDRESSAWARE bcc32.exe

    editbin /LARGEADDRESSAWARE ilink32.exe

— или —

  1. установите флаг с большим адресом, используя editbin С masm32 пакет:

загрузить с http://www.masm32.com/download.htm, который создает c:masm32bineditbin.exe. Я получил несколько предупреждений (с участием ординалов 201 и 203) во время установки MASM32, но его самотестирование прошло, и все, что мне было нужно-это editbin.exe.


У меня была эта проблема, а также с RAD Studio XE8, установленной на Windows 10. При установке на Windows 7 (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!!!


Я нашел обходной путь, который, кажется, работает.

похоже, это связано с поврежденными временными файлами. Мне удалось заставить его работать снова после того, как я сделал «Очистку диска» на моем системном диске.

Я удалил все файлы в списке (все флажки установлены), а также «очистить системные файлы»

после этого я могу скомпилировать и связать, даже без перезагрузки.
Даже инкрементное звено снова заработало!


просто запуск XE8 как администратор исправил его для меня.


As Drewski я столкнулся с ошибкой LME288 после обновления до Windows 10 (x64).

ошибка исчезла, изменив настройки предотвращения выполнения данных на ilink32.exe:

  • Свойства системы — > дополнительные настройки системы — > производительность — > настройки — > Предотвращение Выполнения Данных
  • Включить DEP для всех программ и служб, кроме выбранных ниже -> ilink32.exe.

в моем случае попытка всех других вариантов, упомянутых здесь, не работала вообще.

что, кажется, сделал трюк, это вручную установить объем виртуальной памяти в Системных настройках моей машины Windows 10. Он был настроен на автоматическое управление операционной системой, но изменение его на ручное значение (даже если минимум был меньше того, что было назначено автоматически, и это то, что используется на самом деле) заставило компоновщик работать снова.

в моем случае ОС назначила что-то вроде 1600 МБ. Я установил минимум в 1,024 и максимум в 3,072, перезапустил, и теперь компоновщик работает нормально. Количество использованных говорит 1,024 (даже если рекомендуемое значение говорит ~1,900).


У меня есть другое решение, которое, надеюсь, поможет кому-то борются с этим.

Я пробовал все, и ни одно из предложенных ранее решений не сработало для меня. Очистка диска не помогла. Это явно ошибка в C++Builder, которая существовала в течение многих лет и до сих пор не исправлена даже в XE8 по состоянию на 2015 год.

к счастью, у меня был другой компьютер с рабочей средой, где тот же проект компилировался. Я скопировал все файлы (*.исполняемый.* ,параметр obj и т. д.) С выхода каталог (Win32 / Debug) с этого компьютера на тот, где у меня была проблема, и это волшебным образом установило C++ Builder прямо; все сборки после этого начали работать.


исправлено для XE10 и Windows 10 (x64) с Bitdefender-2016:

Bitdefender — > Модули — > Антивирус — > Исключения — > Исключенные Процессы — > Добавить»…binilink32.EXE-файл» -> разрешить


перезагрузка W10 решила эту проблему на XE5
но я desactivating инкрементное построение


У нас такая же проблема, и мы решили ее, увеличив виртуальную память для Windows (она была очень низкой, 800Mo, теперь около 4 Go)


я исправил это, гарантировав, что папка установки Embarcadero (например C:Program файлы (x86)Embarcadero) были исключены из всех антивирусных сканирований.


Windows 10 (x64), RAD Studio XE Berlin (инкрементная ссылка включена).

я исправил проблему, исключив
«C:Program файлы (x86)Embarcaderobin » из антивирусного окна Defender сканирует.


изменение языка IDE с французского на английский с помощью BDSSetLang.исполняемый
решена для меня ошибка LME288 !


решение очень простое: переменная среды Windows PATH превышает свой предел в 2047 байт.

смотрите мое описание здесь:
http://blog.bitart.at/lme288/ [немецкий]

Edit: мое «решение» длилось всего пару месяцев. После установки Microsoft Visual Studio проблемы вернулись.

Как упоминалось в другом ответе: исправление ilink32.exe с

lamarker -M -Filink32.exe

кажется правильным решение.


Your linker is trying to allocate 128 MB of memory. The following info from Embarcadero was recently posted on the Embarcadero forums:

Error detected (LME288) in Seattle 10 update 1

The error is an «out of memory», error. The reason for «Out Of Memory»
errors (which come in different guises) in the linker, is that the linker
has to pre-allocate memory in contiguous heaps that it then uses as it
links, in the past these heaps could not be adjusted, we had to do a best
guess, so in the new 64-bit linker (and has also been added to the 32-bit
linker) we allowed people to be able adjust the size of these heaps manually
when they needed to
. Now the reason why these heaps can be problem is that
not all systems are the same, some people use different software that map
DLLs into the linker’s address space like Windows Hook DLLs, antivirus
software all these DLLs allocate memory INSIDE the linker’s (any application
really) address space and hence has an impact on the size of the heaps the
linker can allocate. So we added this ability to adjust the heaps manually,
but we also allocated the initial heaps quite big .

The 32bit linker has a new switch -GH, see below this is similar to the
ilink64 switch.

The syntax for the switch is:

-GH= «

This option -GH exists from XE3 Update 1 onwards but evidently is not documented?

To see which heap is out of memory you can try from command line.

MSBuild /p:Platform=Win32 /v:diag XXXX.cbproj

This provides additional information such as:

Overrun on linker heap: code

Linker Heaps


info 0x002d0000 0x0a000000

code 0x000d0000 0x00100000

data 0x00030000 0x08000000

bss 0x08000000 0x08000000

Fatal: Out of memory

The left side of the above output is number of bytes being used at the
moment and on the right the number of bytes allocated for the specific named
heap.

The default heap sizes the linker allocates at start up are:

«system», default size 0x08000000
«info», default size 0x0A000000
«code», default size 0x08000000
«rodata», default size 0x06000000 //readonly data
«data», default size 0x08000000
«bss», default size 0x08000000
«tds», default size 0x0FA00000

When you see the «unknown heap» this is normally the «tds» heap

Example to adjust tds heap from 0x0FA00000 to 0x0A000000 you would do -GHtds=0x0A000000

Hopefully this information helps you and others with the LME288 error.

You can specify additional flags, such as -GH, for the linker in your Project Options.

Понравилась статья? Поделить с друзьями:
  • U2023 86 ленд ровер ошибка
  • Unable to obtain dynamiclink project ошибка
  • U1600 ошибка subaru
  • U2022 ошибка форд
  • Unable to locate adb android studio ошибка