CMake основы

Поделиться
HTML-код
  • Опубликовано: 16 ноя 2024

Комментарии • 111

  • @Ланс-м1в
    @Ланс-м1в 3 года назад +76

    С самого начало про этапы и способы сборки проектов хотелось бы увидеть. Мне эти make, config и д.р. тяжелее даются чем С++.

    • @anatoliyv5607
      @anatoliyv5607 Год назад +11

      Та же фигня, ничего не могу понять

    • @mexal21
      @mexal21 Год назад

      ​@@anatoliyv5607новичкам, которые читают это советую начинать с make, а не cmake, он попроще

    • @TherryYT
      @TherryYT 5 месяцев назад

      Потому что они громадные. Это как изучать новый язык

  • @8Johnny8Catsvill8
    @8Johnny8Catsvill8 3 года назад +65

    Ооо, ну наконец-то хоть кто-то. Хотя я уже им научился пользоваться, но уроков по CMake ооочень мало. Надеюсь, не забросишь. F

    • @konstantinkouptsov7513
      @konstantinkouptsov7513 3 года назад +1

      Есть книжка по CMake. Её и документации в сети вполне достаточно.

    • @8Johnny8Catsvill8
      @8Johnny8Catsvill8 3 года назад +6

      @@konstantinkouptsov7513 да, даже две книжки. Но почему-то нашёл я их не сразу. А документацию читать было сложно. Т.е. не хватало банального понимания, что за чем нажимать, как это работает и для чего оно нужно.

    • @СергейНикитин-т9ж
      @СергейНикитин-т9ж 3 года назад +4

      @@konstantinkouptsov7513 Субъективно без хорошего понимания CMake читать доку по ней сложно... А вот материалов в сети действительно хватает (книги, статьи, видосики с cppcon). Потом уже можно и в документацию лезть)

    • @konstantinkouptsov7513
      @konstantinkouptsov7513 3 года назад +1

      @@СергейНикитин-т9ж Я это и имел ввиду. Но принцип работы CMake весьма прост, поэтому когда его поймёшь после чтения одной (довольно толстой) книжки, то документации вполне достаточно.

    • @ArtDAg05
      @ArtDAg05 3 года назад +2

      @@8Johnny8Catsvill8 решил остальным не делать жизнь проще и не указал название книг?)

  • @WGDev
    @WGDev 3 года назад +35

    Было бы неплохо разобрать утилиту make и подходы к работе с Makefile

  • @cruigo
    @cruigo 3 года назад +5

    Спасибо! Оооочень жду продолжения!

  • @sixaxisization
    @sixaxisization 3 года назад +4

    Это Вы? Это правда Вы? И раньше были Вы? Ой.... спасибо вам огромное...!!! :)

  • @greentree5707
    @greentree5707 3 года назад +5

    Автору большое спасибо за труд! Хотелось бы то же самое про утилиту Make, команды make build, make test, make install.

    • @MN-mi6eo
      @MN-mi6eo 3 года назад

      если вы сами посмотрите на синтаксис файла Makefile, то все сразу поймете, там ничего загадочного нет

    • @Ланс-м1в
      @Ланс-м1в 3 года назад

      Поддерживаю

  • @undefined6436
    @undefined6436 3 года назад +2

    Красавчик, не дождусь как посмотрю это видео. Лайк за активность, тема Сmake очень интересна для меня в работе.

  • @slyene6202
    @slyene6202 3 года назад +2

    Cma... ВОт это как раз то, что мне надо! Только вчера пытался прогу собрать

  • @mbgoodman
    @mbgoodman 3 года назад

    Недавно начал разбираться с CMake и тут как раз это видео. Спасибо!

  • @ivanryanichev1580
    @ivanryanichev1580 3 года назад +1

    Супер, хотелось бы еще видео про современное использование cmake , с разбиением на директории и линковкой таргетов

  • @0x4f6c
    @0x4f6c 3 года назад +6

    Принципы работы это интересно, но полезнее информация о средствах автоматизации создания cmake проектов. Ещё полезнее работать в IDE, которая поддерживает такие проекты. Всё-таки гораздо интереснее писать код, чем вручную выписывать миллион однообразных скриптов системы сборки.
    Если посвятишь этому немного времени - будет супер.

    • @mexal21
      @mexal21 Год назад

      Полезнее как раз таки собирать все самому чем тыкать на магическую кнопочку в ide и ее понимать как это работает под капотом

    • @0x4f6c
      @0x4f6c Год назад +1

      @@mexal21 это, конечно, передёргивание - так ставить вопрос. Лучше всего вышеперечисленного: понимать, что происходит под капотом, и предоставить это делать IDE или соответствующим инструментам.

  • @Wins419
    @Wins419 Год назад

    Поставил бы еще один лайк, но в ютубе нет такого функционала. Второй раз видео помогло).

  • @PushkaryovVsevolod
    @PushkaryovVsevolod 11 месяцев назад

    А чувак то толковый. Знает о чём говорит.

  • @БогданКазимиров-щ6ц

    Можно больше про CMake пожалуйста!

  • @rampage6205
    @rampage6205 Год назад

    Круто, спасибо!

  • @PushkaryovVsevolod
    @PushkaryovVsevolod 11 месяцев назад +3

    Вот так калечит людей c++.....

  • @wokroutArsentiy
    @wokroutArsentiy 2 года назад

    Сейчас для меня как никогда актуально. Перешел на макось и понял, что тут по началу все не как в винде. Привыкну быстро, но хотелось бы ещё и с комфортом привыкать. Благодарю за видео!

  • @АндрейТкаченко-и1ж
    @АндрейТкаченко-и1ж 3 года назад

    Реально полезное видео! Спасибо!

  • @redologs
    @redologs 3 года назад +8

    Ну мне как-то не очень. Для тех кто хочет перейти на cmake информации крайне мало. А для первого ознакомления полезнее будет прочитать статью из википедии.

  • @NihaoChingiz
    @NihaoChingiz 3 года назад +2

    Здраствуйте. А можете рассказать как вы справляетесь с синдромом сухого глаза?

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 3 года назад

    Спасибо!!

  • @sw3nlab
    @sw3nlab 3 года назад

    Супер контент ! Да здравствует Open Source !

  • @simplemovies4126
    @simplemovies4126 3 года назад

    Отличный ролик!

  • @razumov_uv
    @razumov_uv 3 года назад

    👍 Класс!

  • @vdrmkr
    @vdrmkr 3 года назад +1

    Надо было хоть упомянуть соотношение с make, ninja и другими

  • @IlyaZherebtsov
    @IlyaZherebtsov 3 года назад +3

    3:31 неневижу механику, а именно синие переключатели. какие же они громкие, я вообще за ними голос не слышу :(

  • @StahLHerZRocK
    @StahLHerZRocK 2 года назад

    Чет непонял, откуда cmake знает где, а главное какой компилятор, линковщик использовать?

  • @reksarka
    @reksarka 3 года назад +2

    А если проект на Autotools, есть ли какие-то причины не переходить на CMake? За исключением того, что не будет configure и потребуется установленный cmake для сборки.

    • @CAMOBAP795
      @CAMOBAP795 3 года назад

      Есть хорошие проекты которые продолжают использовать autotools (например ffmpeg) так что наверно больше дело вкуса

    • @reksarka
      @reksarka 3 года назад

      @@CAMOBAP795 Очень много опенсорса юзает autotools, даже сам CMake) Мне интересно, если не гоняться за поддержкой совсем уж легаси, можно ли спокойно тащить cmake через менеджер пакетов в любой системе и конфигурировать проект им? Его доступность в системах близка к доступности make?

    • @CAMOBAP795
      @CAMOBAP795 3 года назад +1

      @@reksarka
      > можно ли спокойно тащить cmake через менеджер пакетов в любой системе и конфигурировать проект им?
      Да, вполне, но есть нюанс - если нужны более "свежие" версии их может не быть в дефолтных репах
      Я с недавних пор пользуюсь snap'ом, там всегда можно найти актульную версию snapcraft.io/cmake . Но не уверен что snap завезли на все дистрибутивы уже
      > Его доступность в системах близка к доступности make?
      Я бы сказал что близка

  • @ClosiusBeg
    @ClosiusBeg 3 года назад

    Спасибо большое!! Объясните пожалуйста разницу между PRIVATE, PUBLIC, INTERFACE для target_* ?

  • @Blowjin
    @Blowjin 3 года назад +2

    Можно сделать видео про используемый здесь fiSh. В русской части Ютьюба я ничего похожего не нашёл.

  • @МАйкЛжец-ю8у
    @МАйкЛжец-ю8у 3 года назад

    Книга по CMake Д.В. Дуброва годная? Стоит покупать? Просто других на русском не нашёл.

  • @vladspace6918
    @vladspace6918 3 года назад +1

    Спасибо за видео, очень вовремя :)
    Такой вопрос, за что отвечает команда «make»?

    • @CAMOBAP795
      @CAMOBAP795 3 года назад +4

      Она выполняет сборку на основании Makefile'ов, который могут быть сгенерированны с помощью cmake. По умолчанию make ищет Makefile в текущей директории

    • @greentree5707
      @greentree5707 3 года назад

      @@CAMOBAP795 как тогда определиться что использовать - make или cmake?

    • @CAMOBAP795
      @CAMOBAP795 3 года назад +3

      @@greentree5707 Зависит от задачи, для c++ я бы использовать make на прямую не стал, ну или только если очень простой проект.
      В случае если вам нужно поддерживать много платформ/компиляторов/вариантов сборки + авто тесты + собрать инсталятор - cmake де факто стандарт уже

  • @ni55an
    @ni55an 3 года назад +2

    Уу... помню как ипался с ним лет так 5 назад, собирая проект на C++/OpenGL под Desktop, Android и Web (через emscripten).
    !!! Опасно для здоровья !!! Не повторять в домашних условиях !!!

  • @pegamer3051
    @pegamer3051 3 года назад

    Не могли бы вы подсказать, как реализовать копирование среды выполнения при сборке проекта?

  • @vladimirtatarchevskiy5886
    @vladimirtatarchevskiy5886 3 года назад

    Скажите пожалуйста, каким планшетом и каким ПО вы пользуетесь для рисования на экране?

  • @ЭнджонИгнишин
    @ЭнджонИгнишин 3 года назад

    Спасибо за видео. Подскажите, что за красивый автокомплит для командной строки?

    • @i.reutenko
      @i.reutenko 3 года назад

      Какой то из дефолтных плагинов oh-my-zsh

    • @i.reutenko
      @i.reutenko 3 года назад

      Только это не автокомплит а переход по истории введённых команд

    • @ЭнджонИгнишин
      @ЭнджонИгнишин 3 года назад

      @@i.reutenko , понял, спасибо.

  • @vladimirgorkov5904
    @vladimirgorkov5904 3 года назад +1

    Ну нет если уж взялся учить, то объясняй всё. Каждую строчку. Каждый вызов функции. Все ключи, параметры. Что такое статическая. А какие ещё бывают.

  • @greentree5707
    @greentree5707 3 года назад

    Посоветуйте литературу, где можно поподробнее почитать про cmake.

  • @artem.zacharchenko9806
    @artem.zacharchenko9806 2 года назад

    а что в заголовке .h ? файл не показан. выдает ошибку при сборке.

  • @s4ridzawa
    @s4ridzawa 3 года назад

    Круто! А как Вы реализовали генерацию кода на экране во время записи? По звуку вроде не слышно как по клавиатуре печатаете, а символы бегут...))

    • @s4ridzawa
      @s4ridzawa 3 года назад

      кажется понял, это printer.sh видимо))

    • @artemkonoplin2143
      @artemkonoplin2143 3 года назад

      @@s4ridzawa да

  • @Wins419
    @Wins419 Год назад

    Как с помощью cmake создать файл проекта, например для CodeBlocks (или для другой IDE) из репозитария git? (Вопрос может быть не совсем корректен, тк разбираюсь с темой работа с OpenSource проектами). Заранее спасибо.

    • @АлексейКутасов-п7и
      @АлексейКутасов-п7и Год назад +1

      Посмотрите на опции генератора у cmake
      Например cmake -G "codeblocks - unix makefiles" ..

    • @Wins419
      @Wins419 Год назад

      @@АлексейКутасов-п7и, спасибо попробую.

  • @bagzhansadvakassov1093
    @bagzhansadvakassov1093 3 года назад

    Cherry blue

  • @MN-mi6eo
    @MN-mi6eo 3 года назад

    а можно еще урок по нему?

  • @victorchilari
    @victorchilari 3 года назад +1

    Просмотрел всё видео но так и не понял зачем это мне :/ Что планируете?

    • @razumov_uv
      @razumov_uv 3 года назад

      Как появится потребность делать кросплатформенные вещи, тогда и поймёте, зачем это вам.

  • @blusterhash
    @blusterhash 3 года назад +1

    Jason Turner (у него есть канал про c++ на ютубе) почему-то пишет, что "target_compile_options" - это плохой CMake. Так и не понял, что в нем плохого и на что его нужно заменить ( twitter.com/lefticus/status/1359215651433238531?s=20 )

    • @CAMOBAP795
      @CAMOBAP795 3 года назад +1

      У @Jason Turner реально классный канал, тоже его сморю.
      > почему-то пишет, что "target_compile_options" - это плохой CMake
      Мне кажется Вы не верно перевели: он пишет что если у Вас больше работы с переменными чем использования "стандартных" команд по установке флагов компиляции, то это можно улучшить
      Пример:
      # ПЛОХО
      set(CMAKE_CXX_FLAGS "-Werror -Wall -Wextra -Wpedantic")
      # ХОРОШО
      target_compile_options(my_target PRIVATE "-Werror -Wall -Wextra -Wpedantic")
      т.е. не нужно по возможности избегать "глобально" декларирования агрументов компилятора, нечто похожее на подход с глобальными переменными

    • @fumanchez
      @fumanchez 3 года назад

      конечно плохой, потому что ты меняешь свой гцц на что угодно и у тебя ничего не работает

    • @CAMOBAP795
      @CAMOBAP795 3 года назад

      @@fumanchez А какой магический способ поможет сделать чтобы "все работало" кроме явной поддержки разных компиляторов в CMakeLists.txt? И при чем тут target_compile_options к этой проблеме вообще?

    • @fumanchez
      @fumanchez 3 года назад +1

      @@CAMOBAP795 никакой, вся ответственность на разработчике - если он использует специфический флажок компилятора, которого больше нигде нет, то кроссплатформенности никакой не будет

    • @CAMOBAP795
      @CAMOBAP795 3 года назад +2

      ​@@fumanchez так и есть, но я бы не стал записывать это в недостаток cmake. Использования специфичных флагов компиляции, это как использование платформозависимого API в C++. Нужно просто писать CMakeLists.txt четко понимая какие компиляторы планируете поддерживать, а например check_{c|cxx}_compiler_flag поможет проверять поддерживается тот или иной флаг и не доводить до этапа сборки в худшем случае и показывать адекватную ошибку пользователю

  • @ИнякинАлександр
    @ИнякинАлександр 3 года назад +2

    В Симейке все прекрасно, кроме одного - уродского синтаксиса двадцатилетней давности.

    • @CAMOBAP795
      @CAMOBAP795 3 года назад +3

      Мне кажется через некоторое время развивается "стокгольмский синдром", я теперь в нем что-то очаровательное нахожу уже)

    • @vdrmkr
      @vdrmkr 3 года назад +1

      @@CAMOBAP795 то же самое, сначала хейтил, потом стало нравится

  • @AndRoid-xj2jj
    @AndRoid-xj2jj 3 года назад

    @S0ER, меня интересует такой вопрос - А нельзя ли написать один компилятор для всех языков и под все системы? Например на VStudio можно писать на С++ под Android, но нельзя писать на чистом С под Android, в чем дело?

    • @konstantinkouptsov7513
      @konstantinkouptsov7513 3 года назад +1

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

    • @dann1kid
      @dann1kid 3 года назад

      вопрос, как чистый си будет работать на джава?

    • @expurple
      @expurple 3 года назад +1

      Какой-то очень странный и нубский вопрос. Зачем один компилятор для всех языков? Вы программу пишете на одном конкретном языке, в любом случае. Зачем вам для её сборки качать какой-то гигантский компилятор, который понимает всё на свете? Достаточно того, который предназначен для вашего языка.
      Про то, что нельзя писать на чистом С, тоже очень странное утверждение. Компилятор С++ спокойно компилирует код, написанный на С.

  • @ТимофейМахотин
    @ТимофейМахотин 9 месяцев назад

    Смаке

  • @cyrilanisimov
    @cyrilanisimov Год назад +1

    Это самое сложное объяснение которые я видел. Уж проще на сайте СМэйка туториал почитать, чем такое смотреть. Второй пример очень сложный для новичка и получается, что всё, что после первого примера, который кстати есть в любом хелпе, бесполезно. Имхо, на симэйк надо потратить какое-то время, чтобы начать понимать, зачем сделаны многие вещи, уж больно непривычный синтаксис у него.

  • @magzim9337
    @magzim9337 3 года назад +1

    А зачем этот cmake

  • @Vicont4063
    @Vicont4063 3 года назад

    ruclips.net/video/szdbKz5CyhA/видео.html Как тебе такое Mr. Soer? ))))

  • @dann1kid
    @dann1kid 3 года назад +1

    У тебя шкаф горит а ты про симейк рассказываешь.
    Капец синьоры пошли забывчивые, таблетки хоть выпей, не позорься
    Это рофл давайте без обид ок?

  • @fumanchez
    @fumanchez 3 года назад +2

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

    • @konstantinkouptsov7513
      @konstantinkouptsov7513 3 года назад

      Это пятиминутное видео, а вы хотите со всеми подробностями.

    • @fumanchez
      @fumanchez 3 года назад +1

      @@konstantinkouptsov7513 это не подробность, это основа

    • @konstantinkouptsov7513
      @konstantinkouptsov7513 3 года назад

      @@fumanchez Это явно не основа, а просто иллюстрация как использовать CMake, которая даже не объясняет принципа его работы.

    • @S0ERDEVS
      @S0ERDEVS  3 года назад

      @Konstantin Kouptsov думаете можете написать что-то на cmake не используя ни одной команды из видео? Заинтриговали!

    • @S0ERDEVS
      @S0ERDEVS  3 года назад

      @Fu Manchu смысл делать неконструктивные комментарии? У вас есть опыт в создании обучающего контента? Здорово! Дайте структуру того что и в какой последовательности надо рассказать, чтобы было по красоте. Желательно с таймингом.