Ребята, у кого не получается получить ассемблерный код, автор пишет "gcc -S main.i -o main.s" и у него это работает. Если у вас Windows 10 и при написании команды выше, вы не видите созданный файл, то выполните команду "gcc -S main.c" файл появится и все заработает :)
Огромная просьба! Друзья, поменьше пишите всяких неконструктивных комментариев, не засоряйте общение. Побольше по теме. Тема: программирование на СИ, а не "выбор IDE" или "выбор операционной системы". Я в самой первой части самого первого урка объяснил, почему Windows, а не Linux, почему командная строка (а следовательно WinGW), а не IDE. Добавлю ещё, хотя я это тоже уже говорил. Мы готовимся к программированию контроллеров, а для большинства из них в различных IDE нет тулчейнов, ну либо есть, но они оставляют желать лучшего. Поэтому конструировать их нам придётся своими собственными руками, также Makefile собирать тоже. Поэтому если мы сейчас начнём сразу работать с IDE, то мы так ничему и не научимся в плане настройки правильной работы сборки наших проектов, а также не поймём, как она происходит. Поэтому на данном этапе для нас работа в IDE смерти подобна. Это всё равно что не самим писать код, а попросить, чтобы за нас это сделал кто-то...
@@ivanpetrov228_ cmake - это утилита для автоматического построения makefile-ов, другими словами, автоматическое построение проекта в любом случае будет производиться утилитой make. По мне так лучше разобраться с make и сделать один универсальный скрипт, и пользоваться им, чем изучать ещё один скриптовый язык.
Поправочка. Современные компиляторы с поддержкой стандарта С(11), а это наверное уже все развивающиеся, будут ругаться на пустые скобки списка параметров функции main. Нужно либо выключить поддержку С(11), либо явно указать тип в скобках - void
Помню, как у нас в Политехе проходило первое занятие по программированию. Препод зачем-то начал с рассказа о лицензиях на ПО, затем какие-то непонятные действия в консоли, в конце домашнее задание про регулярные выражения. На первом занятии. На второе занятие треть группы не пришла.
добавьте пожалуйста в будущие уроки описание .h и .c, что в них писать и как их обьявлять при использовании нескольких пар, типа f1.h , f1.c, f2.h , f2.c, f3.h, f3 .c и так далее. main использует f1,f2,f3 или main использует f1, f1 использует f2, f2 использует f3 или комбинации. спасибо
Добрый день. нашел случайно ваш канал, у вас очень похожи тональность и тембр голоса, на моего преподавателя информатики. Также с видом знающего человека все объясняете. Подписался на канал. Пока все с первого раза получается у меня. В школе преподавали Pascal. Может быть и по этому все с первого раза.
Друзья, подскажите, пожалуйста. После того, как я ввел "gcc main.c" у меня появилось такое сообщение: "gcc" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Что делать?
Спасибо за уроки. Смотрю все Ваши видео по электронике. Очень рад что появились уроки по программированию с прицелом под микроконтроллеры. Под скажите какими способами учить английский язык (с прицелом для микроконтроллеров), как делали это Вы? Спасибо за Ваш труд и время.
Доброго времени суток. После этапа ассемблирования пытаюсь открыть файл в notepad++, но получаю абракадабру, в отличии от результата в Вашем примере. Понимаю, что проблема в кодировке, но пока не знаю как исправить. Прошу совета)
Всем доброго времени суток! Чаво то я не то видать сделал... "gcc: error: main.c: No such file or directory gcc: fatal error: no input files compilation terminated." 😐
как сделать так, что командная строка сразу ссылалась на нужную папку? у как у нее настраивать параметры(типо шрифт и тд)? поможет только тотал командер?
Здравствуйте. Спасибо большое за уроки. Подскажите, пожалуйста. У меня такая проблема. Написал программу. Сохранил ее под именем main.c. В командной строке ввел gcc main.c. В папке экзэшный файл создался, но в командной строке программа не выполнилась. Почему такое случилось? Все делаю как у Вас.
Пока никакой среды. Надо понять механизм сборки с нуля. IDE это всё скрывает. Когда научимся нормально работать с Makefile, тогда и среда. Дело не в среде пока что, а в умении писать программу. В этом IDE точно не поможет, поверьте мне с моим 30-летним опытом.
Здравствуйте! Все сделал как в видео. Когда ввожу gcc --help, все нормально, Потом ввожу gcc main.c программа компилируется, получается исполняемый файл a, тоже все нормально, но когда потом ввожу название исполняемого файлa a в консоли выскакивает окно с сообщением "точка входа в процедуру _emutls_get_address не найдена в библиотеке DLL libmingwex-2.dll" В чем может быть причина ошибки? Подскажите пожалуйста.
Это Windows. Должна присутствовать динамически-линкуемая библиотека, указанная Вами. В большинстве стандартных установок ОС Windows она присутствует, но случались случаи, когда её в силу тех или иных причин не было в комплектах. В таком случае при установке MinGW Вам вдобавок к пакетам, перечисленным в данном уроке необходимо выбрать в установочном комплекте пакет mingw32-libmingwex (The MinGW Runtime Library) - желательно оба пакета - и dev и dll.
Спасибо большое автору за уроки! Очень приятно смотреть и изучать. Возникла проблема. После ассемблировки файла main.i создаётся "кривой" main.s, заполненный внутри кучей адресов, навроде 0х80 (до этого всё было как по уроку). Никакой мнемоники ассемблера нет, и командная строка выдаёт кучу соответствующих подобных ошибок: Error: invalid character (0x80) in mnemonic. При этом, если открывать main.s в Notepad++ у него почему-то изначально стоит кодировка ANSI. У всех предыдущих файлов была UTF-8. Не подскажете, в чём проблема?
Комментарий со ссылкой на сторонний ресурс удалил. Просьба не постите ссылки в комментариях, давно уже предупреждал, что буду удалять. Алгоритмы данного сообщества (называется TH-cam) устроены так, что сторонние ссылки в комментариях работают против канала. Если вам данный канал не нужен, то мне он очень дорог, надеюсь, что не только мне. А английский, я кстати, не без помощи указанного канала Лены изучал, причем знаком с ней лично.
Почему вы не используете какой нибудь дистрибутив linux? Больно смотреть на это подобие терминала и пляски с mingw. Попробуйте обязательно) За урок спасибо, сам пишу бэкэнд на более высокоуровневых языках, но для лучшего понимания полезно спускаться на более низкий уровень, такой как Си)
Дык я вроде сказал, что операционной системой пользуется большинство пользователей. Linux из рядовых пользователей мало кто использует. Но если у кого-то есть желание использовать именно Linux - пожалуйста. Код будет собираться и работать в консоли. Мне приходится больше работать в Win, так как в Linux даже экранку писать и то не удобно, я уж не говорю об Adobe Premiere, которого под него вообще нет.
Спасибо за видео. Что то я совсем запутался. Вы сказали, что int - это 4 байта. Я всегда считал, что 2. Посмотрел в таблицах, где-то 32, где-то 16 бит, а где-то "16 or 32". Где правда.
Мы собираем 32-битный код, тот который работает под 32-битный Win. Также он будет работать и под 64, под 16-битный работать не будет. Вот если бы мы собирали под него или по 16-битный DOS, то INT был бы там тоже 16-битный. Как-то так.
@@U_video int по сути это просто "целое", думать о его разрядности в принципе вредно, использовать его стоит только тогда, когда разрядность не важна. Умный компилятор и вовсе подберёт минимально необходимое количество байт, необходимое для задачи, в которой этот int задействован. Спецификация языка лишь гарантирует минимальные пределы значений, которые int обязан вмещать, но не его разрядность. Если нужна строго определённая разрядность, то стоит использовать уже специальные для этого int8_t, int16_t, int32_t, int64_t. Про short/long/word/dword и прочий зоопарк тоже рекомендую сразу забыть.
Это явно не для новичков а для продвинутых пользователей ,сначало нужно освоить работу с файловым менеджером,потом научитьсЯ пользоваться командной строкой и т.д
Ребята, у кого не получается получить ассемблерный код, автор пишет "gcc -S main.i -o main.s" и у него это работает. Если у вас Windows 10 и при написании команды выше, вы не видите созданный файл, то выполните команду "gcc -S main.c" файл появится и все заработает :)
Огромная просьба! Друзья, поменьше пишите всяких неконструктивных комментариев, не засоряйте общение. Побольше по теме. Тема: программирование на СИ, а не "выбор IDE" или "выбор операционной системы". Я в самой первой части самого первого урка объяснил, почему Windows, а не Linux, почему командная строка (а следовательно WinGW), а не IDE.
Добавлю ещё, хотя я это тоже уже говорил. Мы готовимся к программированию контроллеров, а для большинства из них в различных IDE нет тулчейнов, ну либо есть, но они оставляют желать лучшего. Поэтому конструировать их нам придётся своими собственными руками, также Makefile собирать тоже. Поэтому если мы сейчас начнём сразу работать с IDE, то мы так ничему и не научимся в плане настройки правильной работы сборки наших проектов, а также не поймём, как она происходит.
Поэтому на данном этапе для нас работа в IDE смерти подобна. Это всё равно что не самим писать код, а попросить, чтобы за нас это сделал кто-то...
А про cmake что нибудь будет?
В планах пока нет, так как массовых просьб пока не было.
@@ivanpetrov228_ cmake - это утилита для автоматического построения makefile-ов, другими словами, автоматическое построение проекта в любом случае будет производиться утилитой make. По мне так лучше разобраться с make и сделать один универсальный скрипт, и пользоваться им, чем изучать ещё один скриптовый язык.
Как сделать такие панельки с путями с Коммандере?
Огромная благодарность автору канала. Надеюсь в дальнейшем увидеть более сложные программы и погружение в более сложные моменты языка Си.
Сколько пересмотрел уроков по сипипи ,настолько подробно нигде не рассказывалось.Ваш цикл уроков обещает быть уникальным .Пойду задоначу
На степике есть отличный курс
Ютуб хороший канал порекомендовал. Уроки на вес золота!
Спасибо за такое доступное объяснение. Очень благодарен!
Дай вам бог здоровья!
Спасибо!
спасибо за урок
отличная работа,спасибо большое
За укрупнённый шрифт отдельное спасибо!
Поправочка. Современные компиляторы с поддержкой стандарта С(11), а это наверное уже все развивающиеся, будут ругаться на пустые скобки списка параметров функции main. Нужно либо выключить поддержку С(11), либо явно указать тип в скобках - void
Большое спасибо Вам!
Помню, как у нас в Политехе проходило первое занятие по программированию. Препод зачем-то начал с рассказа о лицензиях на ПО, затем какие-то непонятные действия в консоли, в конце домашнее задание про регулярные выражения. На первом занятии. На второе занятие треть группы не пришла.
добавьте пожалуйста в будущие уроки описание .h и .c, что в них писать и как их обьявлять при использовании нескольких пар, типа f1.h , f1.c, f2.h , f2.c, f3.h, f3 .c и так далее. main использует f1,f2,f3 или main использует f1, f1 использует f2, f2 использует f3 или комбинации. спасибо
Дык, где подключили тот и будет использовать.
Спасибо очень доходчиво!!!
Спасибо большое за уроки. Очень хотелось бы от Вас увидеть уроки по Python'y.
Спасибо за урок!
Добрый день. нашел случайно ваш канал, у вас очень похожи тональность и тембр голоса, на моего преподавателя информатики. Также с видом знающего человека все объясняете. Подписался на канал. Пока все с первого раза получается у меня. В школе преподавали Pascal. Может быть и по этому все с первого раза.
👍👍👍супер!
Спасибо! смотрю на скорости 1.75
Друзья, подскажите, пожалуйста. После того, как я ввел "gcc main.c" у меня появилось такое сообщение: "gcc" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом. Что делать?
Я обычно когда пишу программы то сразу hex пишу в текстовом редакторе под ms-dos. Очень удобно. И время выполнения превосходит все ожидания!!!
Спасибо за уроки. Смотрю все Ваши видео по электронике. Очень рад что появились уроки по программированию с прицелом под микроконтроллеры. Под скажите какими способами учить английский язык (с прицелом для микроконтроллеров), как делали это Вы? Спасибо за Ваш труд и время.
Доброго времени суток. После этапа ассемблирования пытаюсь открыть файл в notepad++, но получаю абракадабру, в отличии от результата в Вашем примере. Понимаю, что проблема в кодировке, но пока не знаю как исправить. Прошу совета)
Здравствуйте, нашли ответ на свой вопрос? Я только начал смотреть курс и тоже столкнулся с этой проблемой.
Все понятно и доступно)))
а у меня после установки в командной строке gcc не находит
Чем можно открыть файл типа "o"? Notepad++ выдаёт набор непонятных символов.
У меня не создается .exe
хотя команда gcc -- help проходит, в чем загвоздка?
Всем доброго времени суток! Чаво то я не то видать сделал... "gcc: error: main.c: No such file or directory
gcc: fatal error: no input files
compilation terminated." 😐
как сделать так, что командная строка сразу ссылалась на нужную папку? у как у нее настраивать параметры(типо шрифт и тд)? поможет только тотал командер?
notepad++ не понимает формат s и asm как как можно настроить
Круто!
Спасибо все класс )
Спасибо!
Советую использовать темные темы с подсведкой синтаксиса и вам менее вреда для глаз и нам виднее) да и код так визуально более различим
От темных тем глаза наоборот больше напрягаются
@@ivanpetrov228_ нет, статистика показывает что большинство предпочитает темный.
ребятки, давайте может лучше по существу урока? подобные беседы лучше вести где-то в других местах.
@@ThisDaveAndThatJohn я и сам предпочитаю, дело не в предпочтениях
Ya uvajayu vas
Здравствуйте. Спасибо большое за уроки. Подскажите, пожалуйста. У меня такая проблема. Написал программу. Сохранил ее под именем main.c. В командной строке ввел gcc main.c. В папке экзэшный файл создался, но в командной строке программа не выполнилась. Почему такое случилось? Все делаю как у Вас.
А на чем основан выбор среды разработки?
Есть же достаточное количество ide, которые упрощают процесс компиляции.
Пока никакой среды. Надо понять механизм сборки с нуля. IDE это всё скрывает. Когда научимся нормально работать с Makefile, тогда и среда. Дело не в среде пока что, а в умении писать программу. В этом IDE точно не поможет, поверьте мне с моим 30-летним опытом.
Добрый день! Где можно скачать Ваши уроки по с одним файлом? Спасибо.
Здравствуйте!
Все сделал как в видео. Когда ввожу gcc --help, все нормально, Потом ввожу gcc main.c программа компилируется, получается исполняемый файл a, тоже все нормально, но когда потом ввожу название исполняемого файлa a в консоли выскакивает окно с сообщением "точка входа в процедуру _emutls_get_address не найдена в библиотеке DLL libmingwex-2.dll" В чем может быть причина ошибки? Подскажите пожалуйста.
Это Windows. Должна присутствовать динамически-линкуемая библиотека, указанная Вами. В большинстве стандартных установок ОС Windows она присутствует, но случались случаи, когда её в силу тех или иных причин не было в комплектах. В таком случае при установке MinGW Вам вдобавок к пакетам, перечисленным в данном уроке необходимо выбрать в установочном комплекте пакет mingw32-libmingwex (The MinGW Runtime Library) - желательно оба пакета - и dev и dll.
Спасибо большое автору за уроки! Очень приятно смотреть и изучать. Возникла проблема. После ассемблировки файла main.i создаётся "кривой" main.s, заполненный внутри кучей адресов, навроде 0х80 (до этого всё было как по уроку). Никакой мнемоники ассемблера нет, и командная строка выдаёт кучу соответствующих подобных ошибок: Error: invalid character (0x80) in mnemonic. При этом, если открывать main.s в Notepad++ у него почему-то изначально стоит кодировка ANSI. У всех предыдущих файлов была UTF-8. Не подскажете, в чём проблема?
потому что -S надо писать с большой буквы -S main.i -o main.s
Комментарий со ссылкой на сторонний ресурс удалил. Просьба не постите ссылки в комментариях, давно уже предупреждал, что буду удалять. Алгоритмы данного сообщества (называется TH-cam) устроены так, что сторонние ссылки в комментариях работают против канала. Если вам данный канал не нужен, то мне он очень дорог, надеюсь, что не только мне.
А английский, я кстати, не без помощи указанного канала Лены изучал, причем знаком с ней лично.
Почему вы не используете какой нибудь дистрибутив linux? Больно смотреть на это подобие терминала и пляски с mingw. Попробуйте обязательно) За урок спасибо, сам пишу бэкэнд на более высокоуровневых языках, но для лучшего понимания полезно спускаться на более низкий уровень, такой как Си)
Дык я вроде сказал, что операционной системой пользуется большинство пользователей. Linux из рядовых пользователей мало кто использует. Но если у кого-то есть желание использовать именно Linux - пожалуйста. Код будет собираться и работать в консоли. Мне приходится больше работать в Win, так как в Linux даже экранку писать и то не удобно, я уж не говорю об Adobe Premiere, которого под него вообще нет.
@@narodstream552 я о том, что разрабатывать под linux удобнее, всякого софта для медиа не хватает, это да
Так я и не против. Если есть желание - работайте под любым OS. C это позволяет, это же не ASM. Вот тот только частично.
👏👏👏👏👏👍
Спасибо за видео. Что то я совсем запутался. Вы сказали, что int - это 4 байта. Я всегда считал, что 2. Посмотрел в таблицах, где-то 32, где-то 16 бит, а где-то "16 or 32". Где правда.
Мы собираем 32-битный код, тот который работает под 32-битный Win. Также он будет работать и под 64, под 16-битный работать не будет. Вот если бы мы собирали под него или по 16-битный DOS, то INT был бы там тоже 16-битный. Как-то так.
@@narodstream552 То есть int соответствует разрядности процессора. Вот только в AVR int - 16 бит, а процессор 8-и битный.
Это тоже не факт. От компилятора тоже зависит. проверяйте sizeof(переменная)
@@U_video int по сути это просто "целое", думать о его разрядности в принципе вредно, использовать его стоит только тогда, когда разрядность не важна. Умный компилятор и вовсе подберёт минимально необходимое количество байт, необходимое для задачи, в которой этот int задействован. Спецификация языка лишь гарантирует минимальные пределы значений, которые int обязан вмещать, но не его разрядность. Если нужна строго определённая разрядность, то стоит использовать уже специальные для этого int8_t, int16_t, int32_t, int64_t. Про short/long/word/dword и прочий зоопарк тоже рекомендую сразу забыть.
@@sadsanta84 я в принципе тоже как-то так думал, спс за мнение.
Лайк
Извините, разобрался.
орнул с Шария
nämeler düşündirýäňeý
Это явно не для новичков а для продвинутых пользователей ,сначало нужно освоить работу с файловым менеджером,потом научитьсЯ пользоваться командной строкой и т.д
Спасибо!
Хахаха, Шарий выскочил! Толик по всюду)))
Спасибо!