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

КОМЕНТАРІ • 37

  • @andreykot4507
    @andreykot4507 14 днів тому +22

    где-то до половины лекции я это уже знал, читая документацию по make и stackoverflow, на это у меня ушло очень много времени, а здесь все изложено за пол часа, и самое крутое, что лектор изложил развитие мысли, как от примитивного решения приходить к сложному, но эффективному. Однозначно лайк, особенно за задор, с которым это все подается!

  • @rtgiyrefbgowigi3406
    @rtgiyrefbgowigi3406 13 днів тому +13

    Этот канал - священный грааль

  • @kin4stat
    @kin4stat День тому +1

    Спасибо, все видео истерически смеялся без остановки.
    Кстати насчет cmake_minimum_required:
    Стоит упомянуть, что в некоторых случаях он фиксирует и верхнюю планку доступных фич до указанной версии.
    Есть такая штука, как MSVC_RUNTIME_LIBRARY, специфицирует как линковать стдлибу. Так вот, появилось это в симейке 3.16, а у меня стояло 3.10. Путем 2 часового гадания на гуще проблема конечно решилась, но осадочек остался

  • @user-lv9no7ki4y
    @user-lv9no7ki4y 13 днів тому +6

    Этот канал просто клад❤

  • @user-db6qz5yy7f
    @user-db6qz5yy7f 13 днів тому +1

    Невероятное удовольствие получаешь от прослушивания грамотного человека. Жаль в свое время не встретил таких

  • @DmitryKandiner
    @DmitryKandiner 14 днів тому +1

    Отличный семинар, спасибо! Есть над чем поразмыслить.

  • @turneroq9888
    @turneroq9888 10 днів тому +1

    Отличная лекция, спасибо большое!

  • @user-fw3kx2ix3p
    @user-fw3kx2ix3p 13 днів тому

    Очень полезный семинар, лайк❤

  • @konstantinlimarev2639
    @konstantinlimarev2639 14 днів тому +8

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

  • @McGewen
    @McGewen 14 днів тому +7

    Ура!!!!

  • @alexmid
    @alexmid 14 днів тому

    еще не смотрел, но заранее большое-прибольшое спасибо!

  • @konstantinkouptsov7513
    @konstantinkouptsov7513 5 днів тому

    Вообще, отличное изложение. 👍

  • @total_anihilation
    @total_anihilation 14 днів тому +2

    Полжизни пишу на Си и некоторые вещи не знал. 😄

  • @thepawday
    @thepawday 13 днів тому +1

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

    • @tilir
      @tilir  13 днів тому +1

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

  • @andreysamara9276
    @andreysamara9276 14 днів тому +1

    Спасибо огромное!

  • @Terrensino
    @Terrensino 11 днів тому

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

  • @gubernator-mukhosranska
    @gubernator-mukhosranska 14 днів тому +13

    Жалко про cmake не слишком много(

    • @user-ri7mk9ek6e
      @user-ri7mk9ek6e 12 днів тому

      По cmake рекомендую пройти туториал у них на сайте с докой.

  • @sibedir
    @sibedir 14 днів тому +2

    А где тот комментарий, который нужно лайкать за ранее? ) ❤

  • @e-wh2xc
    @e-wh2xc 14 днів тому +1

    Наверное следующий будет про gdb

    • @tilir
      @tilir  14 днів тому +1

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

  • @user-gq3nk5wf6j
    @user-gq3nk5wf6j 14 днів тому +1

    Всем здравствуйте. Этот стрим потом можно будет посмотреть в записи?

    • @tilir
      @tilir  14 днів тому +10

      Это не стрим, это т.н. "премьера". Видео было записано в четверг. После премьеры оно конечно останется на канале. Ещё и разбивка на эпизоды появится.

  • @andreybogachev7915
    @andreybogachev7915 12 днів тому

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

    • @tilir
      @tilir  11 днів тому +1

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

  • @MainEditor0
    @MainEditor0 13 днів тому

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

    • @tilir
      @tilir  13 днів тому +10

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

    • @MainEditor0
      @MainEditor0 13 днів тому

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

    • @AnarchySane
      @AnarchySane 13 днів тому

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

  • @barsik5943
    @barsik5943 13 днів тому +1

    попробовать перевестись что ли...

  • @user-dq8ns2yn3w
    @user-dq8ns2yn3w 8 днів тому

    Потестил iwyu и что-то не компилится по его советам ...

  • @konstantinkouptsov7513
    @konstantinkouptsov7513 5 днів тому

    Тема automake не раскрыта!

    • @tilir
      @tilir  5 днів тому

      Ну это надо ещё одну лекцию делать. Начинать её с рассказа про макропроцессор m4... но я думаю наверное не надо. Слишком устаревшие вещи.

  • @antarus6338
    @antarus6338 12 днів тому +1

    Зачем я это смотрю....

  • @suic86
    @suic86 13 днів тому +5

    Некоторое время учу русский язык. Я рад, что смог понять это видео.

  • @johndick996
    @johndick996 14 днів тому

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