Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: что-за эльфов всё время ищет AVR-GCC ?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
ветерок
[cesored]
MaxiMuz
у вас в Makefile в строчке
Код
TARGET = LCD_1202.elf
нужно указать имя основного Си файла. Делается это обычно с помощью утилиты MFile из пакета WinAVR
ветерок
TARGET = LCD_1202.elf

это задаётся в avr studio
в configuration options
Output File Name:
я там ставил LCD_1202.с
и он ищет и не находит LCD_1202.с
почему про это нигде не написано ?
_Артём_
Цитата(ветерок @ Oct 15 2012, 21:49) *
это задаётся в avr studio

Поле средой задаётся - зачем менять?


Цитата(ветерок @ Oct 15 2012, 21:49) *
Output File Name:
я там ставил LCD_1202.с
и он ищет и не находит LCD_1202.с

Output File Name - имя выходного файла, LCD_1202.с - входной файл.

Цитата(ветерок @ Oct 15 2012, 21:49) *
почему про это нигде не написано ?

Видимо в виду её очевидности.
MrYuran
А вопрос можно по-человечески задать?
Заодно привести выход компилятора.

Цитата
почему про это нигде не написано ?

Про какую именно?
GNU make

Попробуем разобрать ваш makefile.
Цитата
all: $(TARGET) LCD_1202.hex LCD_1202.eep LCD_1202.lss size


Первый пункт цели all - $(TARGET).

Смотрим:
Цитата
TARGET = LCD_1202.elf

То есть первым делом предписано создать "какой-то" .elf
Кстати говоря, не какой-то, а основной и универсальный выходной гнушный формат. Пора привыкать.

Как сделать elf?
Цитата
##Link
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)

$(TARGET) получается из $(OBJECTS) путем выполнения нижерасположенной команды.
В свою очередь, объектник получается с помощью другой команды:
Цитата
OBJECTS = LCD_1202.o

## Compile
LCD_1202.o: ../LCD_1202.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<


Итого, в результате должны последовательно создаться LCD_1202.o из ../LCD_1202.c, а затем LCD_1202.elf из LCD_1202.o.
Потом из него образуется вся производная требуха: LCD_1202.hex LCD_1202.eep LCD_1202.lss и под конец утилита size выводит финальную статистику.

Насколько вижу, объектник создался, а вот elf - нет. Покажите, что пишет линкер.
Herz
ветерок, давайте без эмоций и нецензурных аллюзий.
ветерок
Код
Build started 16.10.2012 at 16:49:38
avr-gcc -mmcu=atmega48p  LCD_1202.o    -l  -o LCD_1202.elf
avr-gcc: LCD_1202.elf: No such file or directory
make: *** [LCD_1202.elf] Error 1
Build failed with 1 errors and 0 warnings...
MrYuran
странный ключик -l
убрать бы его от греха.. или добавить имя библиотеки.

Может, и не в этом дело, но все-таки.

Поясняю:
за ключом -l должно стоять название линкуемой библиотеки без префикса lib и расширения .a
То есть, libc.a подключается ключом -lc, libm.a соответственно -lm итд.
открытый ключ, видимо, приводит к тому, что -o воспринимается как запрос файла lib-o.a, которого нет.
ветерок
Вообще не пойму откуда этот шняжный ключ берётся и кем приписывается
в makefile такого ключа нету.

объясните мне дураку почему это сразу не работает
почему мне надо что-то править в IDE которая предлагает свои услуги гшенерации makefile и с собственным же файлом не работает как надо
почему ?

а вот,нашёл,есть идея...

в программу добавил
#include "nokia1100_lcd_lib.c"
а из options удалил путь к этой библиотеке
так как это вовсе не библиотека,а одно название.
проект собрался
Всем спасибо.
_Pasha
Цитата(ветерок @ Oct 17 2012, 19:42) *
проект собрался

Адуреть.
Код
## Libraries
LIBS = -l  <-----вот этот мусор надо было убрать

А файл с нокией не включать инклюдом, а просто добавить в проект. [self-censored]! Не любите читать макабуки - включИте голосовую надиктовку или на ютубе кино гляньте как работать со студией (нафиг она вообще нужна, когда есть протеус). Это ж элементарные вещи, их и вкуривать нинада.
ветерок
протеус для виртуальных ананистов
А мне надо устройства во плоти делать.

То есть это обман что там быстрее,сначала разбираешся с косяками (особенностями как любят называть косяки производители ) симулятора,а потом ещё оказывается что в реальности-то не работает устройство !
Ну потом оказывается что протеус не учёл электромагнитные наводки в устройстве которые периодически сбрасывали проц или соплю на плате или вообще неконтакт.
Так что говно этот протеус,чисто маркетинговая куета
_Pasha
lol.gif С чем Вас и поздравляю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.