Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
IvanMIPT
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 9
#1

Корректность Makefile - C++

29.03.2012, 17:43. Просмотров 606. Ответов 2
Метки нет (Все метки)

Написал на Си программу, которая реализует следующую структуру данных - Сбалансированное Дерево - программа компилируется с использованием статической библиотеки libTree.a которая собирается из трёх объектных файлов, получаемых из трёх "сишных" файлов ForCreate.c, ForFind.c и ForDelete.c как несложно догадаться эта библиотека содержит функции для создания дерева, удаления каких-либо его элементов и поиска по дереву, ну и еще кое-какие, что для нашей проблемы не так уж и важно. Данные программа считывает из текстовых файлов TreeDataCreate.txt, TreeDataDelete.txt, TreeDataFind.txt в этих файлах, как уже говорилось, находятся данные в виде массивов чисел для создания дерева, поиска по двоичному дереву и удаления из дерева. Основной получаемый исполняемый файл это BalanceTree который компилируется из "сишного" BalanceTree.c, однако есть еще один Test, который компилируется из Test.c и содержит простенькие тесты для функций из библиотеки. Также в ходе работы программы создаются временные текстовые файлы Temporal*.txt и имеется один header-файл Description.h с описаниями функций, который подключается к BalanceTree и Test.

Вот мы и подобрались к сути проблемы всё это добро собирается с помощью 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
28
29
30
31
32
33
34
35
36
37
38
39
40
BalanceTree Test TreeDataCreate.txt TreeDataDelete.txt TreeDataFind.txt: BalanceTree.o Test.o libTree.a
    gcc BalanceTree.o -L. -lTree -o BalanceTree
    gcc Test.o -L. -lTree -o Test
    echo "70 71 69 68 67 66 65 90 85 71 95 100 110 88 80 87 82 75 77 74 93 94" > TreeDataCreate.txt
    echo "74 32 66 75 100 66" > TreeDataDelete.txt
    echo "74 42" > TreeDataFind.txt
 
BalanceTree.o: BalanceTree.c Description.h
    gcc -c -Wall -Werror BalanceTree.c
 
Test.o: Test.c Description.h
    gcc -c -Wall -Werror Test.c
 
libTree.a: ForCreate.o ForDelete.o ForFind.o
    ar rc libTree.a ForFind.o ForCreate.o ForDelete.o
    ranlib libTree.a
 
ForCreate.o: ForLibrary/ForCreate.c
    gcc -c -Wall -Werror ForLibrary/ForCreate.c
 
ForDelete.o: ForLibrary/ForDelete.c
    gcc -c -Wall -Werror ForLibrary/ForDelete.c
 
ForFind.o: ForLibrary/ForFind.c
    gcc -c -Wall -Werror ForLibrary/ForFind.c
 
clean :
    -rm BalanceTree
    -rm Test
    -rm BalanceTree.o
    -rm Test.o
    -rm TreeDataCreate.txt
    -rm TreeDataDelete.txt
    -rm TreeDataFind.txt
    -rm ForCreate.o
    -rm ForDelete.o
    -rm ForFind.o
    -rm libTree.a
    -rm TemporalData.txt
    -rm TemporalDataFind.txt
Очень хочется знать мнения авторитетных да и просто знающих людей, корректен ли данный Makefile в плане целей, зависимостей, правил да и вообще?? И если нет, то прошу советов по улучшению))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2012, 17:43     Корректность Makefile
Посмотрите здесь:

C++ Linux makefile
Makefile C++
Написание Makefile C++
C++ Создание makefile
Makefile Visual C++
makefile C++
Makefile debugger C++ Linux
DLL+Makefile C++
C++ составить makefile
Неправильный Makefile C++ Linux
Make, makefile, simple makefile, hello_world C++
C++ Linux Упрощение MakeFile-а

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
29.03.2012, 17:58     Корректность Makefile #2
Цитата Сообщение от IvanMIPT Посмотреть сообщение
BalanceTree Test TreeDataCreate.txt TreeDataDelete.txt TreeDataFind.txt: BalanceTree.o Test.o libTree.a
gcc BalanceTree.o -L. -lTree -o BalanceTree
gcc Test.o -L. -lTree -o Test
echo "70 71 69 68 67 66 65 90 85 71 95 100 110 88 80 87 82 75 77 74 93 94" > TreeDataCreate.txt
echo "74 32 66 75 100 66" > TreeDataDelete.txt
echo "74 42" > TreeDataFind.txt
это что? тоже част мейкфайла?

выбросить!
читать: http://linux.yaroslavl.ru/docs/prog/...an_manual.html
IvanMIPT
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 9
29.03.2012, 18:18  [ТС]     Корректность Makefile #3
Я понимаю, что это выглядит странно, но необходимо создать три текстовых файла с начальными данными, можно конечно написать программу или добавить функцию в уже существующую программу (не руками же их создавать в конце концов), но это будет дольше, а так из консоли с помощью shell раз и готово, или это выглядит совсем ужасно и так вообще никто не делает???

Добавлено через 3 минуты
Да и к тому же зачем из Makefile выбрасывать основные цели (BalanceTree, Test) с их зависимостями от объектных файлов и библиотеки (BalanceTree.o, Test.o, libTree.a) и правилами сборки которые по сути банальная компиляция??? Поподробнее если можно
Yandex
Объявления
29.03.2012, 18:18     Корректность Makefile
Ответ Создать тему
Опции темы

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