[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: линкер прав...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Михаил Евстафьев 22 августа 2001 г. 19:55
В ответ на: IAR C V1.4 for AVR --- возможно ли такое ? отправлено Igor Lapshin 22 августа 2001 г. 19:00

Если ему сказано слинковать заданные модули - он и должен это сделать. Если модули имеют флаг "библиотечные" - только тогда линкер имеет право их не включать.
А вообще линкер не всегда может определить, вызывается модуль в программе или нет. Ведь можно, например, расположить модуль по фиксированному адресу, и вызвать его прямым обращением к адресу, без ссылки на имя модуля.
То. что некоторые линкеры имеют опции не включать модули без ссылок - это от лукавого и хорошим тоном не является.
Строго говоря, на входную точку sturtup модуля ссылок никогда и нет, ведь выход на нее происходит аппаратно. Но это же не повод sturtup, и все на что он ссылается (main, например :-)) выбрасывать из программы.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru