Может ли C++ работать без Runtime?

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ • 29

  • @_dzen_tv_
    @_dzen_tv_ 2 дні тому +8

    Файл .so - это скомпилированный файл библиотеки. Он означает «Shared Object» и является аналогом Windows DLL.

  • @АлександрСоловьев-ю9ц2к

    С++ позволяет работать без рантайма.
    С++ так же позволяет собственно свелосипедить этот самый рантайм (если по какой то причине платформа и ОС отсутсвуют (например мы пишем новую ОС на С++) и мы из наличествующего имеем только компилятор для архитектуры процессора)
    Время Медоуказчика , есть книга "Practical Guide to Bare Metal C++" - там как раз описывается как сделать фичи C++ руками с нуля, если платформы у нас нет и её предстоит сделать.

    • @scriptboris
      @scriptboris 3 години тому

      Ооо это жостко 🗿

  • @bsprspktvnk
    @bsprspktvnk 2 дні тому +11

    а может ли си плюс плюс работать без компилятора
    а может ли си плюс плюс работать в голове пишущего

    • @Burburbirbur
      @Burburbirbur 2 дні тому +5

      В голове может работать, но есть проблема
      1 утечка памяти, и все, Альцгеймер

    • @cyrilanisimov
      @cyrilanisimov 2 дні тому +1

      1. Может. Где-то есть интерпретатор Си. Да и Си Шелл, вроде понимает сишный синтаксис.
      2. Может и работает)

  • @xelth
    @xelth 8 годин тому

    int21 это уже рунтайм или еще нет?

  • @sudo-apt-upgrade-brain
    @sudo-apt-upgrade-brain 2 дні тому +1

    Как всегда информативно. Спасибо

  • @xelth
    @xelth 8 годин тому

    мне кажется начать надо с точнейшего определения что такое рантайм - виртуальная машина или любая машина... библиотеку помомему аж никак рантаймом назвать нельзя

  • @andreysamara9276
    @andreysamara9276 2 дні тому +2

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

    • @kjlas8
      @kjlas8 20 годин тому

      Автор вообще не отбивает о чем он говорит

  • @possumcode
    @possumcode 2 дні тому

    Классно. Не подозревал об этом )

  • @_dzen_tv_
    @_dzen_tv_ 2 дні тому +3

    Опции линкера для GCC:
    -nostdlib - не использовать рантайм;
    -static-libgcc -static-libstdc++ - прилинковать статически.
    По умолчанию используется рантайм собранный в виде динамических библиотек. Если не знать что это за библиотеки приложение может окирпичится.

    • @АлександрСоловьев-ю9ц2к
      @АлександрСоловьев-ю9ц2к 2 дні тому

      собственно, именно благодаря данному дефолтному поведению у конечных пользователей зачастую возникает квест "скачать нужный редистриб с МСДН"))))

    • @safocl9768
      @safocl9768 2 дні тому +1

      @@АлександрСоловьев-ю9ц2к есть простое решение -- не юзать винду0))

    • @АлександрСоловьев-ю9ц2к
      @АлександрСоловьев-ю9ц2к 2 дні тому

      @@safocl9768 с глибцами порой проблем не меньше

    • @АлександрСоловьев-ю9ц2к
      @АлександрСоловьев-ю9ц2к 2 дні тому

      @@safocl9768 можно подумать с глибцами проблем меньше)))

  • @alexanderspeshilov839
    @alexanderspeshilov839 День тому

    1. Круто - в этом видео количество ненужных повторений уменьшилось раз в 10. Если в прошлом видео было почти после каждой фразы, то сейчас уже относительно немного.
    2. Сравнивать рантаймы имеет смысл для похожих инструментов. Рантайм С++ вполне себе сопоставим с рантаймом Rust.

  • @cyrilanisimov
    @cyrilanisimov 2 дні тому +1

    При чём тут эксепшены в RAII? Эксепшены можно отключить. RAII - нет.
    Зачем путать «рантайм» и библиотеки?
    Скомпилируйте программу на Rust - библиотека Си и ГЦЦ, тоже будут слинкованы.
    Попробуйте написать программу без мэйна и стандартной либы, не будет вообще рантайма.

  • @alexandrgonzales6503
    @alexandrgonzales6503 2 дні тому

    Доктор, а откуда у вас такие картинки на рабочем столе?

  • @EgorFrade
    @EgorFrade День тому

    Baremetal С++ для esp вполне себе без рантайма.

    • @kjlas8
      @kjlas8 20 годин тому

      Ага. Щас.

  • @MuxaL
    @MuxaL День тому

    zoxide + eza

  • @dimobixgenchik2001
    @dimobixgenchik2001 2 дні тому

    Крутой Дядя !!!

  • @АлександрСоловьев-ю9ц2к

    И да, в комментариях к предыдущему видео один из комментаторов и вы зачем-то упомянули MMU в контексте С++.
    Откуда взялась эта благоглупость? MMU и C++ ну вот вообще друг с другом никак не связаны, от слова совсем. Вот вообще.
    MMU - это аппаратный модуль процессора ОБЕСПЕЧИВАЮЩИЙ АППАРАТНУЮ ВИРТУАЛИЗАЦИЮ (да, виртуальная страничная память - это именно виртуализация, виртуализация ПОД ОСИ которую все и привыкли называть виртуализацией это по то же самое только прикидывающееся нулевым кольцом, она по факту и устроена почти так же только с циферкой уровня привелегий ниже, кроме условного кернела у нас еще появляется уровень круче - суперкернел (супервизор обычно) ) .
    То есть скажем для МНОГОЗАДАЧНОЙ операционной системы он крайне желателен , именно с точки зрения безопасной МНОГОЗАДАЧНОСТИ (не обязателен - можно и без него - собственно что Амига что Маки старые что Виндовсы до тройки не на 386 вполне обходились - это им окошки рисовать и запускать несколько приложений одновременно не мешало, мешало только отуствие аппаратной изоляции доступа к памяти, которое позваляло лихо портить память другому процессу).
    А ВОТ К КРЕСТАМ, МАТЬ ЕГО, КАКОЕ ОН ОТНОШЕНИЕ ИМЕЕТ?

    • @call_nick
      @call_nick День тому

      Где адекватно почитать про виртуальную память и виртуализацию. А то я скоро чокнусь, каждый, кто пишет статью под виртуальной памятью имеет ввиду что то свое.

    • @АлександрСоловьев-ю9ц2к
      @АлександрСоловьев-ю9ц2к День тому

      @@call_nick
      osdev wiki paging
      В гугле искать, ссылки к сожалению не оставить.

  • @ГеннадийБекасов-ь5ю

    А как дядя настраивает дебаг для своих ИДЕ? С удовольствием поруководствовался бы медовым гайдом на тему настройки nvim И vscode