Практика языка C (МФТИ, 2023-2024). Допсеминар: системы сборки (make, cmake).
Вставка
- Опубліковано 10 тра 2024
- Практические занятия по языку C на первом курсе МФТИ. Кафедра информатики.
У студентов в самом разгаре проекты и настало время познакомиться с системами сборки. Мы начнём с разминки в виде анализа зависимостей между файлами. Очень быстро пройдя первый наивный способ собирать скриптом, мы за час напишем три версии makefiles возрастающей сложности. Ну а в конце нас ждёт немного cmake.
Семинарист: Константин Владимиров.
Дата: 25 апреля 2024 года.
Съёмка: Марк Гончаров.
Звук: Юлий Тарасов.
Предыдущий семинар: • Практика языка C (МФТИ...
Следующий семинар: • Практика языка C (МФТИ...
Слайды к занятию: sourceforge.net/projects/cpp-...
Примеры кода: github.com/tilir/teaching
00:00 Зависимости и хедера
08:22 Build.sh
11:48 Makefiles и декларативная модель
19:51 Ленивые и переменные
30:52 Автоматические переменные
36:15 Первая версия makefile
41:33 Функции и wildcards
47:40 Вторая версия makefile и зависимости от хедеров
56:36 Третья итерация: почти идеальный makefile
01:06:26 Знакомство с cmake
01:19:35 Бонус. Немного больше про cmake.
01:30:40 Окончательные уроки.
Errata
* Тут пока пусто
где-то до половины лекции я это уже знал, читая документацию по make и stackoverflow, на это у меня ушло очень много времени, а здесь все изложено за пол часа, и самое крутое, что лектор изложил развитие мысли, как от примитивного решения приходить к сложному, но эффективному. Однозначно лайк, особенно за задор, с которым это все подается!
Этот канал - священный грааль
Спасибо, все видео истерически смеялся без остановки.
Кстати насчет cmake_minimum_required:
Стоит упомянуть, что в некоторых случаях он фиксирует и верхнюю планку доступных фич до указанной версии.
Есть такая штука, как MSVC_RUNTIME_LIBRARY, специфицирует как линковать стдлибу. Так вот, появилось это в симейке 3.16, а у меня стояло 3.10. Путем 2 часового гадания на гуще проблема конечно решилась, но осадочек остался
Этот канал просто клад❤
Невероятное удовольствие получаешь от прослушивания грамотного человека. Жаль в свое время не встретил таких
Отличный семинар, спасибо! Есть над чем поразмыслить.
Отличная лекция, спасибо большое!
Очень полезный семинар, лайк❤
Какое приятное субботнее утро) Спасибо за лекцию! Узнал много нового про make, оказывается, он тоже красивый. Про cmake рекомендую книжку Rafał Świdziński Modern CMake for C++ 2022. Очень легко читается, много примеров, про target oriented подход одна хорошая глава. Но самое главное, там показано, как ваш проект растет и развивается, и как cmake решает эти подростковые проблемы.
Ура!!!!
еще не смотрел, но заранее большое-прибольшое спасибо!
Вообще, отличное изложение. 👍
Полжизни пишу на Си и некоторые вещи не знал. 😄
1:03:05 починка make с помощью git - понимаю. В старом Qt после конфигурации "make clean" бежал собирать тулзу для кодгена, в этом случае самым надежным clean был удар кувалдой "git clean -xdf"
Ну это я скорее за собой чистил -- я же сделал touch не туда руками. Но да как вы описываете тоже бывает ))
Спасибо огромное!
Смеялся в голос от замечания, что 2 из 3 человек не читают документацию, а изучают методом тыка :D Помню, как сам начинал знакомство с мейкфайлами: "Таак, мне нравится другой редактор и другое всё, но среда разработки пишет компилятору, как это всё собирать... Хммм, чё, не разберусь что ли по аналогии так же сделать, но по-своему?!"
Жалко про cmake не слишком много(
По cmake рекомендую пройти туториал у них на сайте с докой.
А где тот комментарий, который нужно лайкать за ранее? ) ❤
Наверное следующий будет про gdb
Нет, я рассказывал основы отладки довольно рано, где-то на первых семинарах. И в общем тут особых проблем нет. Если что у меня есть курс по тулчейну на этом же канале.
Всем здравствуйте. Этот стрим потом можно будет посмотреть в записи?
Это не стрим, это т.н. "премьера". Видео было записано в четверг. После премьеры оно конечно останется на канале. Ещё и разбивка на эпизоды появится.
если что не так, прошу прощения, будет ли курс для самых "маленьких" по с/с++(20)
для riscv64 linux(на ?docker)
С уважением. Андрей.
Если вы про семинары лаборатории RISC-V то в этом году курс разминочный, у нас даже помещения нет пока. Когда курс устаканится, конечно надо будет сделать какую-то выкладку.
Как думаете стоит ли учить программирование сейчас и поступать на IT и смежные направления, не заменит ли ИИ представителей данной профессии? Спрашиваю, как будущий абитуриент...
Как будущий абитуриент вы должны понимать отличие высшего образования от среднего специального. В последнем случае вы осваиваете прикладную профессию чтобы добывать ей деньги на жизнь. Всех таких людей ИИ заменит (вернее это они сейчас заменяют его). В случае высшего образования вы претендуете на большее: на получение некоей критической суммы знаний, которая вас изменит. Откроет горизонты и пути. Например путь в создатели того самого ИИ, почему нет. В существах с развитым индивидуальным сознанием и независимым мышлением у человечества, увы, никогда не будет избытка. Так что если вы способны к получению высшего образования, оно того стоит.
@@tilir Спасибо за ответ, буду размышлять над вашими словами.
Нужно перестать верить всякой чепухе из интернета. Код писать нужно будет всегда. Эффективный тем более. Я вообще вкатывальщик и к МФТИ никакого отношения не имею и могу сказать одно - машина код пишет, но поддерживать его кто будет? Кто изменения вносить будет? Кто баги править будет или они сразу без багов будут? 😂Может через 100 такое машина будет уметь, т.е. не при нашей жизни.
Это как думать, что электронные таблицы заменят бухгалтеров. 😂
попробовать перевестись что ли...
Потестил iwyu и что-то не компилится по его советам ...
Тема automake не раскрыта!
Ну это надо ещё одну лекцию делать. Начинать её с рассказа про макропроцессор m4... но я думаю наверное не надо. Слишком устаревшие вещи.
Зачем я это смотрю....
Некоторое время учу русский язык. Я рад, что смог понять это видео.
Константин, большое спасибо за традиционно качественный семинар!