Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 16

Написать Makefile с разделением бинарных и объектных файлов в разные каталоги

13.11.2012, 22:21. Показов 3320. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как написать маикфаил с разделением бинарных и объектных фаилов в отдельные каталоги. вот что у меня есть :
Код:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CC=gcc
CFLAGS=-g2 -c -Wall
LDFLAGS=-g2 -lncurses
SOURCES=engine.c  ifitron.c  player.c client.c clientM.c
 
OBJECTS=engine.o ifitron.o player.o client.o clientM.o
 
EXECUTABLE=ifitron
 
all: $(EXECUTABLE)
 
$(EXECUTABLE): $(OBJECTS)
    $(CC) $(LDFLAGS) $(OBJECTS) -o $@
    
.c.o:
    $(CC) $(CFLAGS) $< -o $@
clean:
    rm -rf *.o $(EXECUTABLE)
но здесь все фаилы компилируются в совместную директорию а надо их разделить
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2012, 22:21
Ответы с готовыми решениями:

Перемещение файлов из каталога Downloads в разные каталоги
Написать программу, которая, после запуска, обращается к содержимому каталога Downloads в домашней папке, извлекает оттуда файлы и...

Создание бинарных файлов. Чтение и запись бинарных файлов
Здраствуйте. Сколько я не рылся в нете сколько не искал, как то все не доходит до меня тупого). На работе есть задание: 1. есть данные...

О форматах объектных файлов
Имеется задача сформировать объектный файл для линкера от мелокомягких. Пытался найти его описание, но по ключевым словам object file...

2
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
14.11.2012, 04:42
Лучший ответ Сообщение было отмечено gagarin525125 как решение

Решение

Пусть у нас есть директория проекта с поддиректориями src, bin, include:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
User@intel ~/samples/c/test
$ ls -RF
.:
Makefile  bin/  include/  src/
 
./bin:
 
./include:
hello.h
 
./src:
hello.c  main.c
Файлы исходного кода расположены в поддиректории src, заголовочные файлы - в поддиректории include, объектные файлы и слинкованный исполняемый файл - в поддиректории bin.

Тестовые файлы

include/hello.h:
C
1
2
3
4
5
6
#ifndef HELLO_H
#define HELLO_H
 
int hello_world(void);
 
#endif  /* HELLO_H */
src/hello.c:
C
1
2
3
4
5
6
7
#include "hello.h"
#include <stdio.h>
 
int hello_world(void)
{
    return puts("Hello, World!");
}
src/main.c:
C
1
2
3
4
5
6
7
#include <hello.h>
 
int main(void)
{
    hello_world();
    return 0;
}


Собрать проект можно таким Makefile'ом:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
BIN=bin
SRC=src
INCLUDE=include
 
SOURCES=$(notdir $(foreach dir,$(SRC),$(wildcard $(dir)/*.c)))
TARGET=$(addprefix $(BIN)/,$(shell basename `pwd`))
OBJECTS=$(addprefix $(BIN)/,$(SOURCES:.c=.o))
 
CFLAGS=-Wall -Werror -Wextra -Wstrict-prototypes -std=c99 \
    -pedantic -pedantic-errors -g3 $(addprefix -I,$(INCLUDE))
LDFLAGS=
 
vpath %.c $(SRC)
 
all: $(TARGET)
 
$(TARGET): $(OBJECTS)
    $(LINK.o)$^ $(OUTPUT_OPTION)
 
$(BIN)/%.o: %.c
    $(COMPILE.c) $< $(OUTPUT_OPTION)
 
clean:
    $(RM) $(OBJECTS) $(TARGET)
 
 
.PHONY: all clean
Сборка:
Bash
1
2
3
4
5
6
7
8
9
User@intel ~/samples/c/test
$ make
cc -Wall -Werror -Wextra -Wstrict-prototypes -std=c99 -pedantic -pedantic-errors -g3 -Iinclude   -c src/hello.c -o bin/hello.o
cc -Wall -Werror -Wextra -Wstrict-prototypes -std=c99 -pedantic -pedantic-errors -g3 -Iinclude   -c src/main.c -o bin/main.o
cc   bin/hello.o bin/main.o -o bin/test
 
User@intel ~/samples/c/test
$ bin/test
Hello, World!
UPD: поправил Makefile.
0
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 16
14.11.2012, 20:30  [ТС]
огромное спасибо за ответ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.11.2012, 20:30
Помогаю со студенческими работами здесь

Связь объектных файлов!
Доброго времени суток! Подскажите пожалуйста, предположим имеется некий проект, над которым работают 4 программиста и каждому отведена роль...

Декомпиляция объектных файлов и жестокая реальность
Появилось страшно неприодолимое желание подумать над этой темой. Появилось не одно, а вместе с гибелью небольшой папки с небольшим текстом....

разные каталоги
Достался мне сайт на bitrix. На странице выводится каталог товаров (в нем выводятся товары из определенной категории).... но когда...

windows eclipse arm-none-eabi-g++ куча объектных файлов
При компиляции проекта появляется сообщение arm-none-eabi-g++: error: ./Dryvers/CMSIS/DP_Lib/Source/StatistyssFunctions/arm_std_q31.o: No...

Как организуется обработка файлов с помощью объектных технологий
Помогите ответить на вопрос: Как организуется обработка файлов с помощью объектных технологий?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru