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

2024 ж. 8 Мам.
11 704 Рет қаралды

Практические занятия по языку 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, на это у меня ушло очень много времени, а здесь все изложено за пол часа, и самое крутое, что лектор изложил развитие мысли, как от примитивного решения приходить к сложному, но эффективному. Однозначно лайк, особенно за задор, с которым это все подается!

    @andreykot4507@andreykot450711 күн бұрын
  • Этот канал - священный грааль

    @rtgiyrefbgowigi3406@rtgiyrefbgowigi340611 күн бұрын
  • Вообще, отличное изложение. 👍

    @konstantinkouptsov7513@konstantinkouptsov75133 күн бұрын
  • Этот канал просто клад❤

    @user-lv9no7ki4y@user-lv9no7ki4y11 күн бұрын
  • Невероятное удовольствие получаешь от прослушивания грамотного человека. Жаль в свое время не встретил таких

    @user-db6qz5yy7f@user-db6qz5yy7f10 күн бұрын
  • Отличный семинар, спасибо! Есть над чем поразмыслить.

    @DmitryKandiner@DmitryKandiner11 күн бұрын
  • Очень полезный семинар, лайк❤

    @user-fw3kx2ix3p@user-fw3kx2ix3p11 күн бұрын
  • Отличная лекция, спасибо большое!

    @turneroq9888@turneroq98888 күн бұрын
  • Какое приятное субботнее утро) Спасибо за лекцию! Узнал много нового про make, оказывается, он тоже красивый. Про cmake рекомендую книжку Rafał Świdziński Modern CMake for C++ 2022. Очень легко читается, много примеров, про target oriented подход одна хорошая глава. Но самое главное, там показано, как ваш проект растет и развивается, и как cmake решает эти подростковые проблемы.

    @konstantinlimarev2639@konstantinlimarev263911 күн бұрын
  • Ура!!!!

    @McGewen@McGewen12 күн бұрын
  • еще не смотрел, но заранее большое-прибольшое спасибо!

    @alexmid@alexmid11 күн бұрын
  • Полжизни пишу на Си и некоторые вещи не знал. 😄

    @total_anihilation@total_anihilation12 күн бұрын
  • Спасибо огромное!

    @andreysamara9276@andreysamara927611 күн бұрын
  • Смеялся в голос от замечания, что 2 из 3 человек не читают документацию, а изучают методом тыка :D Помню, как сам начинал знакомство с мейкфайлами: "Таак, мне нравится другой редактор и другое всё, но среда разработки пишет компилятору, как это всё собирать... Хммм, чё, не разберусь что ли по аналогии так же сделать, но по-своему?!"

    @Terrensino@Terrensino8 күн бұрын
  • 1:03:05 починка make с помощью git - понимаю. В старом Qt после конфигурации "make clean" бежал собирать тулзу для кодгена, в этом случае самым надежным clean был удар кувалдой "git clean -xdf"

    @thepawday@thepawday11 күн бұрын
    • Ну это я скорее за собой чистил -- я же сделал touch не туда руками. Но да как вы описываете тоже бывает ))

      @tilir@tilir10 күн бұрын
  • Наверное следующий будет про gdb

    @e-wh2xc@e-wh2xc12 күн бұрын
    • Нет, я рассказывал основы отладки довольно рано, где-то на первых семинарах. И в общем тут особых проблем нет. Если что у меня есть курс по тулчейну на этом же канале.

      @tilir@tilir12 күн бұрын
  • А где тот комментарий, который нужно лайкать за ранее? ) ❤

    @sibedir@sibedir12 күн бұрын
  • Жалко про cmake не слишком много(

    @gubernator-mukhosranska@gubernator-mukhosranska12 күн бұрын
    • По cmake рекомендую пройти туториал у них на сайте с докой.

      @user-ri7mk9ek6e@user-ri7mk9ek6e10 күн бұрын
  • Всем здравствуйте. Этот стрим потом можно будет посмотреть в записи?

    @user-gq3nk5wf6j@user-gq3nk5wf6j12 күн бұрын
    • Это не стрим, это т.н. "премьера". Видео было записано в четверг. После премьеры оно конечно останется на канале. Ещё и разбивка на эпизоды появится.

      @tilir@tilir12 күн бұрын
  • если что не так, прошу прощения, будет ли курс для самых "маленьких" по с/с++(20) для riscv64 linux(на ?docker) С уважением. Андрей.

    @andreybogachev7915@andreybogachev791510 күн бұрын
    • Если вы про семинары лаборатории RISC-V то в этом году курс разминочный, у нас даже помещения нет пока. Когда курс устаканится, конечно надо будет сделать какую-то выкладку.

      @tilir@tilir8 күн бұрын
  • Как думаете стоит ли учить программирование сейчас и поступать на IT и смежные направления, не заменит ли ИИ представителей данной профессии? Спрашиваю, как будущий абитуриент...

    @MainEditor0@MainEditor011 күн бұрын
    • Как будущий абитуриент вы должны понимать отличие высшего образования от среднего специального. В последнем случае вы осваиваете прикладную профессию чтобы добывать ей деньги на жизнь. Всех таких людей ИИ заменит (вернее это они сейчас заменяют его). В случае высшего образования вы претендуете на большее: на получение некоей критической суммы знаний, которая вас изменит. Откроет горизонты и пути. Например путь в создатели того самого ИИ, почему нет. В существах с развитым индивидуальным сознанием и независимым мышлением у человечества, увы, никогда не будет избытка. Так что если вы способны к получению высшего образования, оно того стоит.

      @tilir@tilir11 күн бұрын
    • @@tilir Спасибо за ответ, буду размышлять над вашими словами.

      @MainEditor0@MainEditor011 күн бұрын
    • Нужно перестать верить всякой чепухе из интернета. Код писать нужно будет всегда. Эффективный тем более. Я вообще вкатывальщик и к МФТИ никакого отношения не имею и могу сказать одно - машина код пишет, но поддерживать его кто будет? Кто изменения вносить будет? Кто баги править будет или они сразу без багов будут? 😂Может через 100 такое машина будет уметь, т.е. не при нашей жизни. Это как думать, что электронные таблицы заменят бухгалтеров. 😂

      @AnarchySane@AnarchySane11 күн бұрын
  • попробовать перевестись что ли...

    @barsik5943@barsik594311 күн бұрын
  • Потестил iwyu и что-то не компилится по его советам ...

    @user-dq8ns2yn3w@user-dq8ns2yn3w6 күн бұрын
  • Тема automake не раскрыта!

    @konstantinkouptsov7513@konstantinkouptsov75133 күн бұрын
    • Ну это надо ещё одну лекцию делать. Начинать её с рассказа про макропроцессор m4... но я думаю наверное не надо. Слишком устаревшие вещи.

      @tilir@tilir3 күн бұрын
  • Зачем я это смотрю....

    @antarus6338@antarus63389 күн бұрын
  • Константин, большое спасибо за традиционно качественный семинар!

    @johndick996@johndick99611 күн бұрын
  • Некоторое время учу русский язык. Я рад, что смог понять это видео.

    @suic86@suic8611 күн бұрын
KZhead