Презентация «Многофайловый проект. Автоматизация сборки проекта»

Смотреть слайды в полном размере
Презентация «Многофайловый проект. Автоматизация сборки проекта»

Вы можете ознакомиться с презентацией онлайн, просмотреть текст и слайды к ней, а также, в случае, если она вам подходит - скачать файл для редактирования или печати. Документ содержит 28 слайдов и доступен в формате ppt. Размер файла: 132.50 KB

Просмотреть и скачать

Pic.1
Многофайловый проект. Автоматизация сборки проекта.
Многофайловый проект. Автоматизация сборки проекта.
Pic.2
Недостатки однофайловых проектов Одновременная работа над программой нескольких программистов станов
Недостатки однофайловых проектов Одновременная работа над программой нескольких программистов становится неэффективной. Ориентирование в тексте программы становится сложным. Даже при локальном …
Pic.3
Преимущества многофайловой организации проекта Позволяет распределить работу над проектом между неск
Преимущества многофайловой организации проекта Позволяет распределить работу над проектом между несколькими программистами. Код программы более удобочитаем. Сокращает время повторной компиляции. …
Pic.4
Компиляция многофайлового проекта // hello. c #include <stdio. h> void hello(void) { printf(&q
Компиляция многофайлового проекта // hello. c #include <stdio. h> void hello(void) { printf("Hello!\n"); }
Pic.5
Компиляция многофайлового проекта // hello. c #include <stdio. h> void hello(void) { printf(&q
Компиляция многофайлового проекта // hello. c #include <stdio. h> void hello(void) { printf("Hello!\n"); }
Pic.6
Компиляция многофайлового проекта
Компиляция многофайлового проекта
Pic.7
Компиляция многофайлового проекта // hello. c #include <stdio. h> void hello(void) { printf(&q
Компиляция многофайлового проекта // hello. c #include <stdio. h> void hello(void) { printf("Hello!\n"); }
Pic.8
Компиляция многофайлового проекта
Компиляция многофайлового проекта
Pic.9
Заголовочные файлы // hello. c #include <stdio. h> void hello(void) { printf("Hello!\n&qu
Заголовочные файлы // hello. c #include <stdio. h> void hello(void) { printf("Hello!\n"); } // hello. h void hello(void);
Pic.10
Заголовочные файлы // list. h struct list_node { void *data; struct list_node *next; }; // . . .
Заголовочные файлы // list. h struct list_node { void *data; struct list_node *next; }; // . . .
Pic.11
Заголовочные файлы // list. h #ifndef __LIST_H__ #define __LIST_H__ struct list_node { void *data; s
Заголовочные файлы // list. h #ifndef __LIST_H__ #define __LIST_H__ struct list_node { void *data; struct list_node *next; }; // . . . #endif // __LIST_H__
Pic.12
«Большой» проект Компиляция c99 -Wall -Werror -pedantic -c hello. c c99 -Wall -Werror -pedantic -c b
«Большой» проект Компиляция c99 -Wall -Werror -pedantic -c hello. c c99 -Wall -Werror -pedantic -c buy. c c99 -Wall -Werror -pedantic -c main. c c99 -Wall -Werror -pedantic -c test. c Компоновка c99 …
Pic.13
Граф зависимостей
Граф зависимостей
Pic.14
Утилита make make — утилита, автоматизирующая процесс преобразования файлов из одной формы в другую.
Утилита make make — утилита, автоматизирующая процесс преобразования файлов из одной формы в другую. GNU Make (рассматривается далее) BSD Make Microsoft Make (nmake)
Pic.15
Утилита make: принципы работы Необходимо создать так называемый сценарий сборки проекта (make-файл).
Утилита make: принципы работы Необходимо создать так называемый сценарий сборки проекта (make-файл). Этот файл описывает отношения между файлами программы; содержит команды для обновления каждого …
Pic.16
Сценарий сборки проекта цель: зависимость_1 . . . зависимость_n [tab]команда_1 [tab]команда_2 . . .
Сценарий сборки проекта цель: зависимость_1 . . . зависимость_n [tab]команда_1 [tab]команда_2 . . . [tab]команда_m
Pic.17
Простой сценарий сборки greeting. exe : hello. o buy. o main. o gcc -o greeting. exe hello. o buy. o
Простой сценарий сборки greeting. exe : hello. o buy. o main. o gcc -o greeting. exe hello. o buy. o main. o test_greeting. exe : hello. o buy. o test. o gcc -o test_greeting. exe hello. o buy. o …
Pic.18
Использование переменных и комментариев Строки, которые начинаются с символа #, являются комментария
Использование переменных и комментариев Строки, которые начинаются с символа #, являются комментариями. Определить переменную в make-файле можно следующим образом: VAR_NAME := value Чтобы получить …
Pic.19
Использование переменных и комментариев # Компилятор CC := gcc # Опции компиляции CFLAGS := -std=c99
Использование переменных и комментариев # Компилятор CC := gcc # Опции компиляции CFLAGS := -std=c99 -Wall -Werror -pedantic # Общие объектные файлы OBJS := hello. o buy. o greeting. exe : $(OBJS) …
Pic.20
Использование переменных и комментариев hello. o : hello. c hello. h $(CC) $(CFLAGS) -c hello. c buy
Использование переменных и комментариев hello. o : hello. c hello. h $(CC) $(CFLAGS) -c hello. c buy. o : buy. c buy. h $(CC) $(CFLAGS) -c buy. c main. o : main. c hello. h buy. h $(CC) $(CFLAGS) -c …
Pic.21
Автоматические переменные Автоматические переменные - это переменные со специальными именами, которы
Автоматические переменные Автоматические переменные - это переменные со специальными именами, которые «автоматически» принимают определенные значения перед выполнением описанных в правиле команд. …
Pic.22
Автоматические переменные # Компилятор CC := gcc # Опции компиляции CFLAGS := -std=c99 -Wall -Werror
Автоматические переменные # Компилятор CC := gcc # Опции компиляции CFLAGS := -std=c99 -Wall -Werror -pedantic # Общие объектные файлы OBJS := hello. o buy. o greeting. exe : $(OBJS) main. o $(CC) $^ …
Pic.23
Автоматические переменные hello. o : hello. c hello. h $(CC) $(CFLAGS) -c $< buy. o : buy. c buy.
Автоматические переменные hello. o : hello. c hello. h $(CC) $(CFLAGS) -c $< buy. o : buy. c buy. h $(CC) $(CFLAGS) -c $< main. o : main. c hello. h buy. h $(CC) $(CFLAGS) -c $< test. o : …
Pic.24
Шаблонные правила %. расш_файлов_целей : %. расш_файлов_зав [tab]команда_1 [tab]команда_2 . . . [tab
Шаблонные правила %. расш_файлов_целей : %. расш_файлов_зав [tab]команда_1 [tab]команда_2 . . . [tab]команда_m
Pic.25
Шаблонные правила # Компилятор CC := gcc # Опции компиляции CFLAGS := -std=c99 -Wall -Werror -pedant
Шаблонные правила # Компилятор CC := gcc # Опции компиляции CFLAGS := -std=c99 -Wall -Werror -pedantic # Общие объектные файлы OBJS := hello. o buy. o greeting. exe : $(OBJS) main. o $(CC) $^ -o $@ …
Pic.26
Сборка программы с разными параметрами компиляции # Компилятор CC := gcc # Опции компиляции CFLAGS :
Сборка программы с разными параметрами компиляции # Компилятор CC := gcc # Опции компиляции CFLAGS := -std=c99 -Wall -Werror -pedantic # Общие объектные файлы OBJS := hello. o buy. o ifeq ($(mode), …
Pic.27
Сборка программы с разными параметрами компиляции # Финальная сборка: исключим отладочную информацию
Сборка программы с разными параметрами компиляции # Финальная сборка: исключим отладочную информацию и утверждения (asserts) CFLAGS += -DNDEBUG -g0 endif greeting. exe : $(OBJS) main. o $(CC) $^ -o …
Pic.28
Литература Черновик стандарта C99 Б. Керниган, Д. Ритчи Язык программирования С Артур Гриффитс, GCC:
Литература Черновик стандарта C99 Б. Керниган, Д. Ритчи Язык программирования С Артур Гриффитс, GCC: Настольная книга пользователей, программистов и системных администраторов. Различные циклы уроков …


Скачать презентацию

Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!