Практика языка C (МФТИ, 2023-2024). Допсеминар: системы сборки (make, cmake).

  Рет қаралды 12,148

Konstantin Vladimirov

Konstantin Vladimirov

Күн бұрын

Практические занятия по языку 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
* Тут пока пусто

Пікірлер: 37
@andreykot4507
@andreykot4507 14 күн бұрын
где-то до половины лекции я это уже знал, читая документацию по make и stackoverflow, на это у меня ушло очень много времени, а здесь все изложено за пол часа, и самое крутое, что лектор изложил развитие мысли, как от примитивного решения приходить к сложному, но эффективному. Однозначно лайк, особенно за задор, с которым это все подается!
@rtgiyrefbgowigi3406
@rtgiyrefbgowigi3406 14 күн бұрын
Этот канал - священный грааль
@kin4stat
@kin4stat Күн бұрын
Спасибо, все видео истерически смеялся без остановки. Кстати насчет cmake_minimum_required: Стоит упомянуть, что в некоторых случаях он фиксирует и верхнюю планку доступных фич до указанной версии. Есть такая штука, как MSVC_RUNTIME_LIBRARY, специфицирует как линковать стдлибу. Так вот, появилось это в симейке 3.16, а у меня стояло 3.10. Путем 2 часового гадания на гуще проблема конечно решилась, но осадочек остался
@user-lv9no7ki4y
@user-lv9no7ki4y 14 күн бұрын
Этот канал просто клад❤
@user-db6qz5yy7f
@user-db6qz5yy7f 13 күн бұрын
Невероятное удовольствие получаешь от прослушивания грамотного человека. Жаль в свое время не встретил таких
@McGewen
@McGewen 14 күн бұрын
Ура!!!!
@turneroq9888
@turneroq9888 11 күн бұрын
Отличная лекция, спасибо большое!
@DmitryKandiner
@DmitryKandiner 14 күн бұрын
Отличный семинар, спасибо! Есть над чем поразмыслить.
@konstantinkouptsov7513
@konstantinkouptsov7513 6 күн бұрын
Вообще, отличное изложение. 👍
@user-fw3kx2ix3p
@user-fw3kx2ix3p 13 күн бұрын
Очень полезный семинар, лайк❤
@konstantinlimarev2639
@konstantinlimarev2639 14 күн бұрын
Какое приятное субботнее утро) Спасибо за лекцию! Узнал много нового про make, оказывается, он тоже красивый. Про cmake рекомендую книжку Rafał Świdziński Modern CMake for C++ 2022. Очень легко читается, много примеров, про target oriented подход одна хорошая глава. Но самое главное, там показано, как ваш проект растет и развивается, и как cmake решает эти подростковые проблемы.
@alexmid
@alexmid 14 күн бұрын
еще не смотрел, но заранее большое-прибольшое спасибо!
@total_anihilation
@total_anihilation 14 күн бұрын
Полжизни пишу на Си и некоторые вещи не знал. 😄
@suic86
@suic86 14 күн бұрын
Некоторое время учу русский язык. Я рад, что смог понять это видео.
@thepawday
@thepawday 13 күн бұрын
1:03:05 починка make с помощью git - понимаю. В старом Qt после конфигурации "make clean" бежал собирать тулзу для кодгена, в этом случае самым надежным clean был удар кувалдой "git clean -xdf"
@tilir
@tilir 13 күн бұрын
Ну это я скорее за собой чистил -- я же сделал touch не туда руками. Но да как вы описываете тоже бывает ))
@Terrensino
@Terrensino 11 күн бұрын
Смеялся в голос от замечания, что 2 из 3 человек не читают документацию, а изучают методом тыка :D Помню, как сам начинал знакомство с мейкфайлами: "Таак, мне нравится другой редактор и другое всё, но среда разработки пишет компилятору, как это всё собирать... Хммм, чё, не разберусь что ли по аналогии так же сделать, но по-своему?!"
@sibedir
@sibedir 14 күн бұрын
А где тот комментарий, который нужно лайкать за ранее? ) ❤
@gubernator-mukhosranska
@gubernator-mukhosranska 14 күн бұрын
Жалко про cmake не слишком много(
@user-ri7mk9ek6e
@user-ri7mk9ek6e 13 күн бұрын
По cmake рекомендую пройти туториал у них на сайте с докой.
@e-wh2xc
@e-wh2xc 14 күн бұрын
Наверное следующий будет про gdb
@tilir
@tilir 14 күн бұрын
Нет, я рассказывал основы отладки довольно рано, где-то на первых семинарах. И в общем тут особых проблем нет. Если что у меня есть курс по тулчейну на этом же канале.
@MainEditor0
@MainEditor0 14 күн бұрын
Как думаете стоит ли учить программирование сейчас и поступать на IT и смежные направления, не заменит ли ИИ представителей данной профессии? Спрашиваю, как будущий абитуриент...
@tilir
@tilir 14 күн бұрын
Как будущий абитуриент вы должны понимать отличие высшего образования от среднего специального. В последнем случае вы осваиваете прикладную профессию чтобы добывать ей деньги на жизнь. Всех таких людей ИИ заменит (вернее это они сейчас заменяют его). В случае высшего образования вы претендуете на большее: на получение некоей критической суммы знаний, которая вас изменит. Откроет горизонты и пути. Например путь в создатели того самого ИИ, почему нет. В существах с развитым индивидуальным сознанием и независимым мышлением у человечества, увы, никогда не будет избытка. Так что если вы способны к получению высшего образования, оно того стоит.
@MainEditor0
@MainEditor0 14 күн бұрын
@@tilir Спасибо за ответ, буду размышлять над вашими словами.
@AnarchySane
@AnarchySane 13 күн бұрын
Нужно перестать верить всякой чепухе из интернета. Код писать нужно будет всегда. Эффективный тем более. Я вообще вкатывальщик и к МФТИ никакого отношения не имею и могу сказать одно - машина код пишет, но поддерживать его кто будет? Кто изменения вносить будет? Кто баги править будет или они сразу без багов будут? 😂Может через 100 такое машина будет уметь, т.е. не при нашей жизни. Это как думать, что электронные таблицы заменят бухгалтеров. 😂
@user-gq3nk5wf6j
@user-gq3nk5wf6j 14 күн бұрын
Всем здравствуйте. Этот стрим потом можно будет посмотреть в записи?
@tilir
@tilir 14 күн бұрын
Это не стрим, это т.н. "премьера". Видео было записано в четверг. После премьеры оно конечно останется на канале. Ещё и разбивка на эпизоды появится.
@andreybogachev7915
@andreybogachev7915 12 күн бұрын
если что не так, прошу прощения, будет ли курс для самых "маленьких" по с/с++(20) для riscv64 linux(на ?docker) С уважением. Андрей.
@tilir
@tilir 11 күн бұрын
Если вы про семинары лаборатории RISC-V то в этом году курс разминочный, у нас даже помещения нет пока. Когда курс устаканится, конечно надо будет сделать какую-то выкладку.
@user-dq8ns2yn3w
@user-dq8ns2yn3w 9 күн бұрын
Потестил iwyu и что-то не компилится по его советам ...
@barsik5943
@barsik5943 13 күн бұрын
попробовать перевестись что ли...
@andreysamara9276
@andreysamara9276 14 күн бұрын
Спасибо огромное!
@konstantinkouptsov7513
@konstantinkouptsov7513 6 күн бұрын
Тема automake не раскрыта!
@tilir
@tilir 6 күн бұрын
Ну это надо ещё одну лекцию делать. Начинать её с рассказа про макропроцессор m4... но я думаю наверное не надо. Слишком устаревшие вещи.
@antarus6338
@antarus6338 12 күн бұрын
Зачем я это смотрю....
@johndick996
@johndick996 14 күн бұрын
Константин, большое спасибо за традиционно качественный семинар!
skibidi toilet 73 (part 2)
04:15
DaFuq!?Boom!
Рет қаралды 30 МЛН
You don't need libraries to write a game engine in C++ | OpenGL | Devlog
2:50
Роудмап по фронтенду: что я не знал?
20:13
Лёша Корепанов
Рет қаралды 25 М.
Первый Алгоритм Для Изучения в 2024
8:13
Саша Лукин
Рет қаралды 50 М.