Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Makefile  (Прочитано 978 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ilikeMagic

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Makefile
« : 10 Октября 2012, 00:38:29 »
Добрый вечер! Прошу вашей помощи в решении задания:
" Создайте Makefile, который при вызове команды make all для каждого файла в текущей директории выводит сообщение "this file is named as <file name> ". "

У меня есть вариант, но преподаватель хочет другой реализации.

source_files := $(wildcard *.*)
result := "this file as named "
 
all:
    @echo -e $(foreach file, $(source_files), $(result) $(file))\n
 
clean:
    rm -rf *~ *stackdump *.swp


Можете предложить другой вариант? Заранее благодарю.

Оффлайн onelastfm

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Re: Makefile
« Ответ #1 : 10 Октября 2012, 14:12:36 »
мне кажется копай в сторону:

files:=$(wildcard *.*)

all: $(files)
.....

%.*:
    @echo "file name is"$^


где all зависит от files, а для каждого files есть @echo....

городить foreach не стоит.
   

Оффлайн l.rod

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Makefile
« Ответ #2 : 11 Октября 2012, 22:58:20 »
у меня тоже вопрос по Makefile'ам

скажет вот чтоимеется

├── file1.c
├── file2.c
├── file3.c
├── subdir1
│   ├── file4.c
│   └── file5.c
└── subdir2
    ├── file6.c
    └── file7.c

как все это скомпилировать?

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

Оффлайн DemonN_nn

  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Makefile
« Ответ #3 : 17 Октября 2012, 20:01:09 »
у меня тоже вопрос по Makefile'ам

скажет вот чтоимеется

├── file1.c
├── file2.c
├── file3.c
├── subdir1
│   ├── file4.c
│   └── file5.c
└── subdir2
    ├── file6.c
    └── file7.c

как все это скомпилировать?

я уже нашел, как зайти в подкаталог и скомпилировать отдельные файлы, но как все получившееся объектные файлы слинковать вместе?
точнее вопрос, как узнать список этих файлов?
Поменяв "расширение" у файлов в списке исходников (т.е. с *.c на *.o). Смотри на функции работы со строками в makefile, вроде $(variable_name:%.c=%.o)

 

Страница сгенерирована за 0.015 секунд. Запросов: 22.