реклама на сайте
подробности

 
 
> Помогите с Makefile, *** missing separator. Stop.
swisst
сообщение May 24 2010, 13:03
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Решил попробовать пересесть на Eclipse с AVR Studio. К тому же всегда интересовала работа утилиты make.
В общем задача ставилась простая: взять исходники рабочего проекта из студии -> перенести их в проект Eclipse, подправить/написать makefile для проекта Eclipse, собрать проект, получить нужные файлы на выходе и сравнить их со студийными. Если файлы идентичны - задачу осилил.

Разобрался с Eclipse, AVR плагином к нему и автоатическим генерированием makefile - hex-файлы не совпали (скорее всего какие-то ключи указаны/не_указаны). Дальше начал штудировать make, честно говоря, по-началу - wacko.gif каша в голове, потом пришло понимание...

Поправил make-файл студии, долго правил, пока удалось собрать проект, в итоге hex-файлы совпали...но...

Дано:
- папка проекта AVR_Test - в ней лежат *.c и *.h файлы, мой makefile
- силами makefile создаю в папке проекта папку output и кидаю в нее файлы *.d и *.o
- силами makefile компилирую проект и создаю в папке проекта выходные файлы elf, hex, eep, lss, map

но это все работает, только один раз - когда в папке проекта отсутствует папка output
т.е. я собираю проект в первый раз - все ОК, собираю этот же проект во второй раз, выдает:
Код
make all
output/crc.o:1: *** missing separator.  Stop.

беру и вручную удаляю папку output - проект собирается...

подскажите, где я накосячил или чего не сделал/переделал...
Прикрепленные файлы
Прикрепленный файл  makefile.txt ( 3.35 килобайт ) Кол-во скачиваний: 57
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
XVR
сообщение May 25 2010, 06:59
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
в Eclipse добавил [Tab]:
Отключив таким образом все зависимости wacko.gif
Цитата
clean:
-rm -rf $(OBJECTS) $(PROJECT).elf output/* $(PROJECT).hex $(PROJECT).eep $(PROJECT).lss $(PROJECT).map
Нету в Windows команды rm Или ставьте cygwin или меняйте rm на del
Go to the top of the page
 
+Quote Post
swisst
сообщение May 25 2010, 07:19
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Цитата(XVR @ May 25 2010, 09:59) *
Отключив таким образом все зависимости wacko.gif
Нету в Windows команды rm Или ставьте cygwin или меняйте rm на del


дело в том, что проект собирается "как надо" - я сравниваю hex-файлы, созданные в студии (без своего вмешательства) и в Еклипсе (с правленым makefile). Тоже самое касается clean - все файлы, которые я указываю очистить - очищаются...смущает только сообщение об ошибке...

makefile я редактирую Студийный (предполагая, что он заведомо правильный и рабочий), потом сталкиваюсь с ситуацией, когда одна и та же строка ведет себя по разному (касательно Other dependencies)...
Go to the top of the page
 
+Quote Post
XVR
сообщение May 25 2010, 07:33
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(swisst @ May 25 2010, 11:19) *
дело в том, что проект собирается "как надо" - я сравниваю hex-файлы, созданные в студии (без своего вмешательства) и в Еклипсе (с правленым makefile). Тоже самое касается clean - все файлы, которые я указываю очистить - очищаются...смущает только сообщение об ошибке...
присмотрелся внимательнее - он ругается не на rm, а на ваш include. Теперь он трактует его как команду для выполнения.

Вообще вот это -
Код
-include $(shell mkdir output 2>/dev/null) $(wildcard output/*)
немного бред - эта строка пытается текстуально включить ВСЕ файлы из директории output в текущий makefile. Может все же в там не $(wildcard output/*), а что нибудь типа $(wildcard dep/*)?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01399 секунд с 7
ELECTRONIX ©2004-2016