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

 
 
> gnu make, make.exe: *** No rule to make target...
demiurg_spb
сообщение Dec 7 2008, 12:00
Сообщение #1


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Я думаю, что это может заинтересовать многих.
Очень часто в больших проектах содержится множество исходных файлов.
И если в списке SRC указан файл, отсутствующий в путях проекта, выскакивает лишь сообщение:
Цитата
make.exe: *** No rule to make target...
Вопрос: как организовать вывод более внятного сообщения с указанием имени ненайденного файла?
Я так понимаю, что надо до сборки прописать правило в котором происходит проверка доступа к каждому файлу из SRC списка.
А как это сделать?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
axle
сообщение Dec 8 2008, 10:14
Сообщение #2


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

Группа: Новичок
Сообщений: 81
Регистрация: 19-04-07
Пользователь №: 27 167



Мне кажется надо делать так:
Код
SRC = file1.c file2.c
....
$(SRC):
    @echo File not found: $@
    @exit 1

Хотя не понятно чем не устраивает сообщение:
make: *** Нет правила для сборки цели `file.c', требуемой для `file.o'.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 8 2008, 10:32
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Код
$(SRC):
    @echo File not found: $@
    @exit 1

Так ругается на строку 2
makefile:439: *** Missing separator Stop.

Цитата(axle @ Dec 8 2008, 13:14) *
Хотя не понятно чем не устраивает сообщение:
make: *** Нет правила для сборки цели `file.c', требуемой для `file.o'.
Я такого сообщения не встречал ни разу. Этого и хотелось добиться.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 10 2008, 15:32
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Сообщение: "makefile:439: *** Missing separator Stop."
появлялось, если вместо табуляции я ставил пробелы перед @echo...
Так всё хорошо:
Код
# check all src files to be accessible.
testsrc:
$(SRC):
    @echo $(MSG_FILE_NOT_FOUND) $@
    @exit 1
Спасибо за красивое решение!


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- demiurg_spb   gnu make   Dec 7 2008, 12:00
- - SysRq   Разве? Тут скорее makefile вообще отсутствует, или...   Dec 7 2008, 14:18
|- - demiurg_spb   Я ещё раз проверил: КодSRC = SRC += main.c .... SR...   Dec 7 2008, 15:15
- - SysRq   Правим makefile от MFile из WinAVR:Код# Define pro...   Dec 7 2008, 16:13
|- - demiurg_spb   Цитата(SysRq @ Dec 7 2008, 19:13) Такое в...   Dec 7 2008, 17:01
|- - SysRq   Цитата(demiurg_spb @ Dec 7 2008, 20:01) Н...   Dec 7 2008, 18:27
|- - demiurg_spb   Во! Это уже очень хорошо. Спасибо! Но для ...   Dec 7 2008, 18:36
- - SysRq   Мнэээ.. ну, если там примерно так задается: КодSOU...   Dec 7 2008, 22:02
|- - demiurg_spb   Можно раскидать всё по каталогам и не боятся что к...   Dec 7 2008, 23:47
|- - SysRq   Насчет разделения мусора и исходников мысль отличн...   Dec 8 2008, 00:27
|- - SysRq   Цитата(axle @ Dec 8 2008, 13:14) Мне каже...   Dec 8 2008, 10:52
- - ReAl   Оно, конечно, оффтопик, но я давно пошёл другим пу...   Dec 11 2008, 08:26


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 12:56
Рейтинг@Mail.ru


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