|
linker |
|
|
|
Jun 17 2009, 11:24
|

Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142

|
Здравствуйте! WinAVR, родной makefile. main.c Код #include <avr/io.h>
int do_not_link_me( int arg ) { return arg * arg; }
int main( void ) { } main.lss ( По сути листинг прошивки ) Код int do_not_link_me( int arg ) { 88: 88 9f mul r24, r24 8a: 90 01 movw r18, r0 8c: 89 9f mul r24, r25 8e: 30 0d add r19, r0 90: 98 9f mul r25, r24 92: 30 0d add r19, r0 94: 11 24 eor r1, r1 return arg * arg; } Хочу так, что бы в прошивке не было неиспользуемых функций. Усердно читаю и пробую ld options... Помогите, пожалуста, терминами ( как эту проблему правильно называть ) ну и с решением. Спасибо!
|
|
|
|
|
 |
Ответов
|
Jun 19 2009, 18:16
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(Злодей @ Jun 17 2009, 18:09)  Добавлю, что в приведённом примере функция не линкуется если её объявить static. Хочу добавить, что иначе и быть не может: у статических объектов область видимости - файл, поэтому линкеру они не видны, он о их существовании ничего не знает (исключением, по-моему, яувляются только статические члены классов). Цитата(Злодей @ Jun 19 2009, 03:11)  (А то забуду) В FAQ надо отправить hex2bin и bin2hex посредством srecord А что это и для чего?
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
Jun 20 2009, 18:31
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(alx2 @ Jun 19 2009, 21:16)  у статических объектов область видимости - файл, поэтому линкеру они не видны, он о их существовании ничего не знает (исключением, по-моему, яувляются только статические члены классов). Такие обьекты должны быть видны линкеру посредством их использования другими (нестатическими) обьектами\функциями. В примпре, приведённом у топикстартера, функция int do_not_link_me( int arg ) нигде не используется, поэтому если её обьявить статической, она справедливо будет выкинута.
|
|
|
|
Сообщений в этой теме
Злодей linker Jun 17 2009, 11:24   aesok Для GCC:
Единицей обработки компилятора является ... Jun 20 2009, 20:18   alx2 Цитата(IgorKossak @ Jun 20 2009, 23:31) Т... Jun 21 2009, 14:24    IgorKossak Цитата(alx2 @ Jun 21 2009, 17:24) ? Не по... Jun 21 2009, 17:17     aesok Цитата(IgorKossak @ Jun 21 2009, 21:17) В... Jun 21 2009, 18:58     alx2 Цитата(IgorKossak @ Jun 21 2009, 22:17) В... Jun 23 2009, 09:29      aesok Цитата(alx2 @ Jun 23 2009, 13:29) Целью п... Jun 23 2009, 18:11       alx2 Цитата(aesok @ Jun 23 2009, 23:11) Если к... Jun 24 2009, 10:54 mdmitry Уже обсуждалось на форуме, поищите, пожалуйста. Со... Jun 17 2009, 13:13 Злодей Спасибо, коллега подсказал параметры компиляции -f... Jun 17 2009, 13:34 mdmitry Именно они, но я их не могу запомнить.
Не пора... Jun 18 2009, 12:16 Злодей Тогда сразу в -Os ... Вероятно, есть ньюансы, из-з... Jun 18 2009, 22:11 IgorKossak Да, Вы правы, оговорился. Но независимо от того, к... Jun 22 2009, 06:29 demiurg_spb Цитата(IgorKossak @ Jun 22 2009, 10:29) р... Jun 22 2009, 14:41  mdmitry Цитата(demiurg_spb @ Jun 22 2009, 18:41) ... Jun 22 2009, 16:05   demiurg_spb Цитата(mdmitry @ Jun 22 2009, 20:05) объя... Jun 22 2009, 16:14 mdmitry Гарантированно инлайн и никаких мыслей более Jun 22 2009, 16:22 demiurg_spb Цитата(mdmitry @ Jun 22 2009, 20:22) Гара... Jun 22 2009, 16:26  ReAl Цитата(demiurg_spb @ Jun 22 2009, 19:26) ... Jun 22 2009, 16:58
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|