Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
3 / 3 / 8
Регистрация: 14.10.2012
Сообщений: 288

Чем плох make?

30.05.2016, 00:16. Показов 1075. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дали написать реферат по make файлам и соответственно указать его минусы, а значит сравнить его с такими утилитами как CMake, но для меня это проблематично т.к. я работал только с make, но прочитав несколько статей, попробовал что-то написать:
C++
1
2
3
4
5
6
Единственное,  make файл ненадежный, он более рассчитан для обучения, а не для использования  в реальных проектах. К  “большим” минусам make файла можно отнести:
- Низкую надежность при сборке больших проектов, Ваша программа может просто упасть и будет       не совсем ясно какова причина т.е. виноват make или написанная вами программа.
- Отсутствие возможности запускать несколько make’ов параллельно. Когда они попытаются компилировать одни и те же файлы. Скорее всего, даже оба аварийно завершат работу.
- После неудачной сборки дальнейшие инкрементальные перекомпиляции могут быть    ненадёжными т.е. при повторном запуске make может посчитать, что файл уже не требует перекомпиляции и попытается использовать его, что может привести к странному результату.
- Производительность растет квадратично(приблизительно) к росту проекта(личные наблюдения).
Для сборки больших(и не очень) проектов используются более современные утилиты, такие как CMake, qmake, Maven(для Java), QBS или используют IDE, например, недавно вышедшая кросс-платформенная C/C++ IDE, которая изначально поддерживает CMake.
на что преподаватель ответил:
C++
1
2
3
В добавок, СMake, который ты уехал, делает одно - make-файлы. 
В больших проектах пишут обобщенные мake'и и хорошо себя чувствуют. 
Пункт про запуск нескольких процессов вообще к чему? Многоядерная компиляция запускается через ключ, если имелось ввиду это
Можете подсказать, что можно дописать в реферате?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2016, 00:16
Ответы с готовыми решениями:

Чем плох void main?
Встретил мнение, что void main() - не канон и даже плохо. Но статья древняя, 1996 года, и даже автор открестился, сказав, что для новых...

В чем плох этот код?
Всем привет, давно меня тут не было, но сразу к делу... Есть вот такой проект, выполненный как тестовое задание на стажировку, в которой...

Чем плох std::map?
std::map ?

4
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
30.05.2016, 01:14
Nike1995, первая ссылка из гугла.
Оттуда же можно найти кучу разных форумов, где обсуждается этот вопрос.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
30.05.2016, 01:31
Цитата Сообщение от Nike1995 Посмотреть сообщение
Единственное, *make файл ненадежный, он более рассчитан для обучения, а не для использования *в реальных проектах. К *“большим” минусам make файла можно отнести:
ага.
и хер с ним, что используется в этих самых реальных проектак.

тот же cmake генерит make для спборки gcc/mingw

сегодня этим самым "ненадежным/только для обучения" делается вся сборка в мире линукса.

другое дело, что make файлы не делают вручную.

за это отвечают различные конфигураторы.

--------------------------
хотя лично я делал вручную makefile ,
который поимел cmake на его поле в nix* системе.
----------------------------
тот еще геммор.
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
30.05.2016, 09:24
Цитата Сообщение от Nike1995 Посмотреть сообщение
Можете подсказать, что можно дописать в реферате?
Очень выигрышно бы смотрелся обзор / сравнение со следующим поколением систем сборочных тулов на основе xml-конфигурирования. Например с Apache Ant.
Цитата Сообщение от Nike1995 Посмотреть сообщение
- Низкую надежность при сборке больших проектов, Ваша программа может просто упасть и будет не совсем ясно какова причина т.е. виноват make или написанная вами программа.
А вот это я бы выпилил совсем, ибо чушь.
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
30.05.2016, 13:06
Цитата Сообщение от hoggy Посмотреть сообщение
другое дело, что make файлы не делают вручную.
не всегда, мы вручную писали для OpenJDK, там чуть ли не для каждого файла нужны были свои ключи, тот еще гемор конечно, но когда нужен полный контроль, другого выхода нет. У нас для этого был специальный человек в команде, который назывался build-master.

Цитата Сообщение от HighPredator Посмотреть сообщение
А вот это я бы выпилил совсем, ибо чушь.
+1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2016, 13:06
Помогаю со студенческими работами здесь

Чем же макрос define так плох?
После прочтения про директиву препроцессора define возник вопрос по поводу применения define, как функции: #define QQ (q) (q^q) Можно...

Что такое make-файлы и с чем их едят?
Создаю makefile с именем hello.mak, # Компиляция Hello, World CPP = "c:\programm files\dev-cpp\bin\g++" hello.exe: hello.cpp $(CPP)...

Почему экзешник make.exe (вернее, его разновидность mingw32-make.exe) принимает неизвестные параметры?
Друзья! У меня есть одна из сборок mingw, а там, как известно файл make.exe отсутствует, а вместо него есть файл mingw32-make.exe Суть...

Чем плох управляемый С++?
Я дико извиняюсь за подобную тему... но дело в том, что мне сегодня задали этот вопрос и, собственно, я не смог на него ответить. Сам я...

make / mingw32-make - сравнение скорости в многопоточном режиме (-j)
в MinGW + MSYS имеются такие файлы для сборки программ с помощью Makefile: Alex@tycoon-851de03e /home $ make -v GNU Make 3.81 ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru