RXL
Технический
Администратор
Offline
Пол:
|
|
« : 26-07-2007 11:30 » |
|
Есть такая бага (см. субж). Проблема возникает на этапе линковки. Я с ней столкнулся второй раз. Первый раз как-то решил и ... забыл как. В инете нет ответа. Выглядит так: [Linker] [Linker Error] Fatal: Error detected (C:\1518) [Linker Error] Fatal: Access violation. Link terminated.
Если кто _точно_ знает, как решить - пишите сюда. Это будет как памятка, чтоб еще раз не вспоминать.
|
|
« Последнее редактирование: 26-07-2007 12:02 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #1 : 27-07-2007 05:34 » |
|
Это ошибка линкера. Тут этот вопрос обсуждался: http://sysman.flesk.ru/index.php?s=&act=ST&f=48&t=6685Нужно поставить патчи: Borland C++Builder 6.0 Enterprise Update 4 (=build 10.166) BCB 6.0 Enterprise ilink patch (v.5.66) Update4 можно найти по ссылке ^^^. Второй патч я пока найти не смог. После установки первого версия ilink32.exe меняется с 5.60 на 5.64 и код ошибки тоже меняется: [Linker] [Linker Error] Fatal: Error detected (LME1520) [Linker Error] Fatal: Access violation. Link terminated.
У кого-нибудь есть этот патч?
|
|
« Последнее редактирование: 27-07-2007 06:00 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #2 : 27-07-2007 06:53 » |
|
Некоторым решением будет в настройках проекта убрать галочку "Don't generate state files" на закладке "Linker". Лекарство ли это или временное решение - пока не знаю. Во всяком случае, мне сейчас помогло.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #3 : 02-08-2007 06:45 » |
|
Найден патч. Помогло. Большое спасибо корейским любителям BC6! Для нуждающихся патч лежит здесь: http://shelek.tmf.ru/programs/BCB6_ilink32_5.66_patch.rarРазмер: 1МБ Содержит README и патчи для версий standard, pro и enterprise. Предварительно следует установить Update4: http://shelek.tmf.ru/programs/BCB6_ENT_Update_4.rarРазмер: 24МБ Обновляет как инструментарий, так и VCL-библиотеки для версии enterprise.
|
|
« Последнее редактирование: 02-08-2007 06:51 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #4 : 25-02-2008 15:05 » |
|
Снова эта хрень. Уже не смешно По теме: http://public.kitware.com/pipermail/vtk-developers/2005-July/003411.htmlОттуда ссылка на faq Борланда: http://dn.codegear.com/article/26379Question: I am working with a large project and it started generating LME linker errors. Why is this occurring, and are there any workarounds?
Answer: LME (Linker Memory Errors), usually result from the linker failing to allocate enough memory to perform its operations. These error usually only occur with very large projects.
Workarounds: 1. Increase the amount of virtual memory (even if it is a lot, try increasing it). 2. Disable state files (this pretty much will disable the incremental linker). - On that note, you should delete any *.il files in your project directory. 3. Break up some of your project into DLLs to relieve the stress to the linker. 4. Possibly a problem in your project related to conflicting calling conventions between a project and a dll.
Это сколько памяти ему надо?!! У меня 1.5ГБ оперативки и 2ГБ файл подкачки. Причем усиленного свопирования не наблюдается. При этом, размер exe получается 5МБ (это вчера, когда еще собиралось). Всего навсего поставил BC6 на другой машине. Материться хочется. Видимо, действительно стоит думать над разбиением на dll.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #5 : 25-02-2008 15:30 » |
|
У меня 1.5ГБ оперативки и 2ГБ файл подкачки. Винда хочет для pagefile.sys от 1,5 до 3х, от размеров ОЗУ. Те в твоём случае рекомендовано 2,25Г, хотя лучше - 4Г. А сколько объектные файлы занимают?
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #6 : 25-02-2008 15:57 » |
|
Джон, думаю, дело не в памяти, а в багах линкера. Забавный факт: я до этого компилировал на виртуалке с 384МБ виртуального ОЗУ и 1ГБ своп. Сейчас пересобрал проект там и он... собрался! А на отдельной физической машине поставил тот же компилятор, те же патчи, те же версии компонентов - собирается с ошибкой.
Объектные файлы занимают 54МБ, ресурсы - меньше 10кБ, готовый exe должен выйти ~5.2МБ. Все библиотеки BC и компонент линкуются статически, чтобы не тянуть их по отдельности на клиентские машины.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #7 : 25-02-2008 21:39 » |
|
Неопределенная бага. Единственное гарантированное, хотя и временное, решение - уменьшить размер линкуемых частей. Пересобрал все используемые сторонние компоненты в режиме Release и размер exe уменьшился на 300кБ. Видимо это какой-то барьер - в 5МБ. Патч для ilink32 помог его преодолеть, но всего на 200кБ. А ведь программа будет расти...
В кратце оглядел хелпы на предмет создания dll с компонентами. Сложности есть (классы в отдельных модулях) и пока не ясно как решать. Во всяком случае, они в эту тему не вписываются. Когда поэкспериментирую и уточню сложности, напишу отдельную тему. Как просто с чистым С: никаких классов, никаких абстракций - все четко и ясно. Ностальгия взяла (
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #8 : 25-02-2008 22:06 » |
|
Ну Dll изначально не предназначены для объектов. Надо очень много прыгать с бубном, чтобы их собрать, и чтоб работало. Ром, а это обязательно именно в BC++. Другой альтернативы нет? Я лично в BC сидел максимум с пол года. Правда в довольно старой версии. Меня лично отолкнуло, непонятная работа с указателями. И то, что нужно было подключать не хедеры, а cpp файлы Кстати в 6 версии это осталось?
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #9 : 26-02-2008 10:26 » |
|
Finch, честно говоря, не знаю, что такое "подключение cpp" и в чем сложность с указателями. Не встречал такого.
Программиста в штате у нас нет - его заменяю я, хотя я администратор базы. ( Проекту много лет. Сейчас он состоит из 67 модулей. Переписать все это под другую среду - огромная работа. Проект с самого начала велся на BC++. Год назад я его со скрипом перенес с BC5 на BC6. В общем то, выбор верный, т.к. разработка на BC не требует высокой квалификации (визуальность и достаточная понятность генерируемого кода) и будущим админам будет легче разобраться в коде.
Вить, а какая альтернатива есть? Нужно много GUI (диалоги, таблицы и т.п.). MFC? - Увольте, но не буду я на нем писать. VB? - Это мой ночной кошмар. И медленно работает. Java? - Тормоз жуткий. Qt/GTK++ - инструментарий слаб и библиотеки за собой тянет. Что еще есть?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Вад
|
|
« Ответ #10 : 26-02-2008 11:44 » |
|
RXL, WTL?
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #11 : 26-02-2008 12:29 » |
|
MFC? - Увольте, но не буду я на нем писать. Почему? Ща в 2008ой студии такую "весчь" замутили. А С#? Тож штука перспективная пока.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #12 : 26-02-2008 13:42 » |
|
Вад, что есть WTL?Посмотрел на rsdn статьи. Тот же MFC, только в профиль и еще навороченней. Джон, не перевариваю я MFC - кривой он, на мой взгляд. У меня патологическая неприязнь к MS
|
|
« Последнее редактирование: 26-02-2008 13:46 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #13 : 26-02-2008 16:12 » |
|
Посмотрел на rsdn статьи. Тот же MFC, только в профиль и еще навороченней. Ага, ты только WTL-щикам про это не говори - могут и морду набить. Это набор шаблонных классов, который не требует никаких библиотек. Это скорее ООП надстройка над ATL. Позволяет гораздо удобней делать компактные симпатичные проги, которые зависят только от системных компонент винды. Мы как-то на неём мессенджера ваяли для Штерна (или Шпигеля). Джон, не перевариваю я MFC - кривой он, на мой взгляд. Дык его кривизна совпадает с кривизной WinAPI, а на чём ещё можно под виндой ваять? Всё остальное и дельфи, и дот нет - это только надстройки над ней, такие же как и MFC, только попродвинутей. У меня патологическая неприязнь к MS Тогда не пиши под неё, если есть такая возможность. Я бы, например проги только под ДОС делал. Милое дело. Дык клиенты не спрашивают. Понаставять всяких икспей да вистей, а ты мучайся.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #14 : 26-02-2008 16:17 » |
|
MFC - это вкууусно!
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #15 : 26-02-2008 19:05 » |
|
Finch, честно говоря, не знаю, что такое "подключение cpp" и в чем сложность с указателями. Не встречал такого.
Сразу оговорюсь, BC++ была очень старой версии. Где то 1999 года разлива. Заместо #include "MyFile.h", Нужно было писать #include "MyFile.cpp". Иначе он выдавал полный список статей моей виновности при линковке. Как это побороть, честно говоря, я тогда не нашел. Насчет указателей. Да с обычным одинарным указателем он работал нормально. Но как только мне понабились двойные указатели на мой собственный тип, тут начались приключения. Он зараза, при резервировании массива указателей, размешал не в куче, а в продолжении стека функции. И как бы головной указатель, был не указателем на массив, а самим массивом.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #16 : 26-02-2008 19:22 » |
|
Finch, кошмар... Нет, с таким мне столкнуться не пришлось. BC я опробовал первой версии и забыл на долго, пока не пришел на текущую работу - уже на BC5. Джон, учту Кстати, что интересно: в BC есть две несовместимые "системные" библиотеки: VCL и CLX. CLX - более поздняя. Заявлено, что она кроссплатформенная и, судя по докам, очень напоминает Qt.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #18 : 28-09-2010 17:07 » |
|
CBuilder, того домена сто лет как не существует. Посмотри тут: https://club.shelek.ru/viewfiles.php?id=3
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
CBuilder
Гость
|
|
« Ответ #19 : 28-09-2010 17:34 » |
|
RXL, спасибо вам большое! А то где не искал негде небыло...
|
|
|
Записан
|
|
|
|
Prokl
Участник
Offline
|
|
« Ответ #20 : 19-03-2011 03:27 » |
|
Столкнулся с этой ошибкой линкера. кто-нибудь, все же, нашел решение, как с ней справиться?
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #21 : 19-03-2011 06:47 » |
|
Prokl, апдейт и патч уже наложил?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Prokl
Участник
Offline
|
|
« Ответ #22 : 19-03-2011 09:50 » |
|
Да, уже давненько.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #23 : 19-03-2011 10:02 » |
|
И что происходит?
У меня проблема была плавающая. Пять лет пользуюсь BCB6. Четыре года назад нарвался на багу. Пропатчил. Иногда она снова вылезала - в теме я отписался. Потом исчезла и до сих пор ее нет. Проект во всех случаях один и тот же. Сейчас размер exe перевалил за 6 МБ, не считая дополнительной dll.
Не могу сейчас вспомнить, что было в последний раз, когда проявилась бага. По моему, я просто пересобрал весь проект (не make, а build!). Причем, сборку я делаю Debug, т.к. никакой существенной весовой и скоростной разницы не заметил, а ошибки лучше заметны.
Еще можно попробовать удалить файлы базы предкомпилированных заголовков и пересобрать проект заново.
|
|
« Последнее редактирование: 19-03-2011 10:07 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Prokl
Участник
Offline
|
|
« Ответ #24 : 19-03-2011 14:18 » |
|
Я добавил в проект второй модуль, получилась проблема с переменными, но ее я вроде решил, точно узнать не дал компелятор. Тогда я удалил второй модуль, причем в первом ничего не менял, а ошибка осталась.
Добавлено через 1 минуту и 33 секунды: удалил все временные файлы - не помогло
|
|
« Последнее редактирование: 19-03-2011 14:19 от Prokl »
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #25 : 19-03-2011 15:17 » |
|
Попробуй пересоздать проект и добавить в него файлы.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Prokl
Участник
Offline
|
|
« Ответ #26 : 19-03-2011 15:27 » |
|
Пересоздать в смысле переписать? Видно это и придется сделать. Просто уже кучу компонент навтыкал и сейчас все заново делать...
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #27 : 19-03-2011 15:42 » |
|
Разве "пересоздать" и "переписать" - синонимы? Тупо создаешь новый проект. Выкидываешь из него все. Копируешь в его папку файлы из старого проекта (cpp, h, dfm, res). Добавляешь скопированные модули через менеджер проекта.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Prokl
Участник
Offline
|
|
« Ответ #28 : 20-03-2011 02:57 » |
|
Сделал, ошибка осталась. Придется именно переписывать
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #29 : 20-03-2011 11:36 » |
|
Значит глюк проявляется при некоторой ошибке в программе. Если ты все правильно пропатчил, то вариантов не остается. Сперва ставится BCB6 Enterprise, потом апдейт, потом патч для линкера.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|