Форум программистов, компьютерный форум, киберфорум
С под Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
146 / 116 / 37
Регистрация: 27.10.2011
Сообщений: 690
1

Автоматическая поэтапная компиляция, сборка и линковка [GNU Make 4] [GCC]

12.11.2016, 17:00. Просмотров 1091. Ответов 2
Метки нет (Все метки)

Честно говоря, вопрос наверное больше по GNU Make, нежели по C, но я не нашёл более подходящего раздела для создания темы
Итак, сабж.
Накидал такой makefile :
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DIR = $(notdir $(shell pwd))
 
CFLAGS = -O2
 
SRC = $(wildcard *.c)
OBJ = $(SRC:.c=.o)
 
$(DIR): $(OBJ)
    gcc $(CFLAGS) $^ -o $@
 
%.asm: %.c
    gcc -S $(CFLAGS) $< -o $@
 
%.o: %.asm
    gcc -c $(CFLAGS) $< -o $@
В итоге, при запуске make просто пропускается отдельная стадия компиляции, сразу генерируются объектные файлы. Что не так?

Не по теме:

Отдельного тега для makefile'ов нет?

0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2016, 17:00
Ответы с готовыми решениями:

Использование GNU GCC ("компиляция из консоли")
Я заметил, что все новичковые курсы содержат в себе работу с какой-либо популярной средой, например...

GCC Сборка 32 разрядной версии GCC 64 разрядным GCC
Доброго времени суток. Возникла необходимость под 32х разрядный Linux, собрать 32 разрядный GCC. Но...

Поэтапная сборка компьютера
Процессор - DualCore AMD Athlon 64 X2, 3000 MHz 6000+ Системная плата - Asus M2N Опер. память - 2...

Поэтапная сборка пк на процессоре i-5
Здравствуйте, решил собрать ПК на процессоре intel i5-46xx, для веб программирование на ближайшие...

2
914 / 631 / 198
Регистрация: 08.09.2013
Сообщений: 1,690
13.11.2016, 19:43 2
Лучший ответ Сообщение было отмечено HighPredator как решение

Решение

Цитата Сообщение от Nikitko_Cent Посмотреть сообщение
В итоге, при запуске make просто пропускается отдельная стадия компиляции, сразу генерируются объектные файлы. Что не так?
1. При запуске программы, скорее всего, будут выполняться встроенные правила %.c -> %.o
Запретить их можно пустым правилом
.SUFFIXES:
2. Для ассемблирования запускать нужно as вместо gcc.
2
146 / 116 / 37
Регистрация: 27.10.2011
Сообщений: 690
13.11.2016, 21:15  [ТС] 3
Цитата Сообщение от gng Посмотреть сообщение
1. При запуске программы, скорее всего, будут выполняться встроенные правила %.c -> %.o
Запретить их можно пустым правилом
.SUFFIXES:
Да, как оказалось, дело было именно в этом
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2016, 21:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Какая связь между утилитой Gnu make и Java?
Один уважаемый автор построил множество примеров с использованием утилиты Gnu make. Зачем? Что...

Линковка библиотек gcc под линукс
Подключаю Oracle Instant Client, скачал файлики rpm с ихнего сайта, установил их в линуксе (у меня...

Linux Ubuntu GCC-7.3.0 (make) ?
Доброго времени суток, есть один вопрос: скачал архив gcc-7.3.0.tar.gz, открыл выполнил make. А...

Не работает на компиляторе gnu gcc
#include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;string&gt; #include &lt;algorithm&gt; using namespace...

формат строки в исходнике gnu gcc
вопрос вроде детский, но найти ответ на него не могу уже второй день: пишу на ассемблере, нужно...

GNU GCC Compiler в Code Blocks
Установил по инструкции, но при запуске появляется сообщение Can't find compiler executable in your...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.