Исправление ошибок компиляции

Это ваша первая программа на C (или C++) — она не такая уж большая, и вы собираетесь скомпилировать ее. Вы нажимаете на compile (или вводите команду компиляции) и ждете. Ваш компилятор выдает пятьдесят строк текста. Вы выбираете слова warning и error. Задумываетесь, значит ли это, что все в порядке. Вы ищите полученный исполняемый файл. Ничего. Черт возьми, думаете вы, я должен выяснить, что все это значит …

Типы ошибок компиляции

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

  • предупреждения компилятора;
  • ошибки компилятора;
  • ошибки компоновщика.

Хоть вы и не хотите игнорировать их, предупреждения компилятора не являются чем-то достаточно серьезным, чтобы не скомпилировать вашу программу. Прочитайте следующую статью, которая расскажет вам, почему стоит дружить с компилятором и его предупреждениями. Как правило, предупреждения компилятора — это признак того, что что-то может пойти не так во время выполнения. Как компилятор узнает об этом? Вы, должно быть делали типичные ошибки, о которых компилятор знает. Типичный пример — использование оператора присваивания = вместо оператора равенства == внутри выражения. Ваш компилятор также может предупредить вас об использовании переменных, которые не были инициализированы и других подобных ошибках. Как правило, вы можете установить уровень предупреждений вашего компилятора — я устанавливаю его на самый высокий уровень, так что предупреждения компилятора не превращаются в ошибки в выполняемой программе (“ошибки выполнения”).

Тем не менее, предупреждения компилятора не должны останавливать работу вашей программы (если только вы не укажете компилятору рассматривать предупреждения как ошибки), так что они, вероятно, не так серьезны как ошибки.

Ошибки — это условия, которые препятствуют завершению компиляции ваших файлов.

Ошибки компилятора ограничены отдельными файлами исходного кода и являются результатом “синтаксических ошибок”. На самом деле, это означает, что вы сделали что-то, что компилятор не может понять. Например, выражение for(;) синтаксически не правильно, потому что цикл всегда должен иметь три части. Хотя компилятор ожидал точку с запятой, он мог также ожидать условное выражение, поэтому сообщение об ошибке, которое вы получите может быть что-то вроде:

line 13, unexpected parenthesis ‘)’

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

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

could not find definition for X

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

Ошибки компилятора — с чего начать?

Если вы столкнулись с перечнем пятидесяти или шестидесяти ошибок и предупреждений, то будет сложно определить с чего начать. Самое лучшее место, тем не менее, в начале списка. В самом деле, вы почти никогда не начинаете исправлять ошибки от конца файла до его начала по одной простой причине: вы не знаете ошибки ли они на самом деле!

Одна ошибка в верхней части вашей программы может вызвать целый ряд других ошибок компилятора, потому что эти строки могут рассчитывать на что-то в начале программы, что компилятор не смог понять. Например, если вы объявляете переменную с неправильным синтаксисом, компилятор сообщит о синтаксических ошибках, и что он не может найти объявление для переменной. Точка с запятой, поставленные не в том месте, могут привести к огромному количеству ошибок. Это происходит, потому что синтаксис C и C++ синтаксис позволяет объявить тип сразу же после его определения:

struct 
{
   int x;
   int y;
} myStruct;

код создаст переменную, MyStruct, с местом для хранения структуры, содержащей два целых числа. К сожалению, это означает, что если вы опустите точку с запятой, компилятор будет интерпретировать это так, как будто следующая вещь в программе будет структурой (или возвращает структуру).

Что-то вроде этого:

struct MyStructType
{
   int x;
   int y;
}

int foo()
{}

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

extraneous ‘int’ ignored

Все это из-за одного символа! Лучше всего начать с самого верха.

 Анализ сообщения об ошибке

Большинство сообщений от компилятора будет состоять как минимум из четырех вещей:

  1. тип сообщения — предупреждение или ошибка;
  2. исходный файл, в котором появилась ошибка;
  3. строка ошибки;
  4. краткое описание того, что работает неправильно.

Вывод g++ для указанной выше программы может выглядеть следующим образом (ваши результаты могут отличаться, если вы используете другой компилятор):

foo.cc:7: error: semicolon missing after struct declaration

foo.cc это имя файла. 7 — номер строки, и ясно, что это ошибка. Короткое сообщение здесь весьма полезно, поскольку оно показывает именно то, что не правильно. Заметим, однако, что сообщение имеет смысл только в контексте программы. Оно не сообщает, в какой структуре не хватает запятой.

Более непонятным является другое сообщение об ошибке из той же попытки компиляции:

extraneous ‘int’ ignored

Программист должен выяснить, почему это произошло. Обратите внимание еще раз, что эта ошибка была вызвана проблемой в начале программы, не в строке 8, а раньше, когда в структуре не хватает точки с запятой. К счастью, понятно, что определение функции для foo было в порядке, это говорит нам о том, что ошибка должна быть где-то в другом месте программы. На самом деле, она должна быть в программе раньше — вы не будете получать сообщение об ошибке, которое указывает на синтаксическую ошибку до строки, на которой ошибка на самом деле произошла.

Это руководящий принцип вычисления ошибок компилятора: если сомневаетесь, посмотрите в программе раньше. Так как синтаксические ошибки могут позже иметь серьезные последствия, вполне возможно, что компилятор указывал номер строки, в которой на самом деле не было синтаксической ошибки!

Будет гораздо хуже, если компилятор не будет сообщать вам, что произошло ранее в программе. Даже первая ошибка компилятора, которую вы получите, может быть связана с несколькими строками  до указанного предупреждения.

Обработка непонятных или странных сообщений

Есть несколько особенно сложных типов ошибок компилятора. Первый — это необъявленная переменная, которую, как вам кажется, вы объявили. Часто, вы можете указать, где именно переменная была объявлена! Проблема в том, что часто переменная просто написана с ошибкой. К сожалению, это довольно трудно увидеть, так как обычно мы читаем то, что ожидаем, а не то, что есть на самом деле. Кроме того, есть и другие причины, почему это может быть проблемой — например, проблемы с видимостью!

Чтобы разобраться в возможных проблемах, я делаю так: в строке, где находится якобы необъявленная переменная, надо выполнить поиск текстовым редактором слова под курсором (в качестве альтернативы можно скопировать имя переменной и выполнить поиск), и если я записал его неправильно, оно не найдется. Также не надо вводить имя переменной вручную, так как вы случайно можете ввести его правильно.

Второе непонятное сообщение:

unexpected end of file

Что происходит? Почему конец файла будет «неожиданным» ? Ну, здесь главное думать как компилятор; если конец файла является неожиданным, то он,  должно быть, чего-то ждет. Что бы это могло быть? Ответ, как правило, «завершение». Например, закрывающие фигурные скобки или закрывающие кавычки. Хороший текстовый редактор, который выполняет подсветку синтаксиса и автоматический отступ, должен помочь исправить некоторые из этих ошибок, что позволяет легче обнаружить проблемы при написании кода.

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

Наконец, если ничего не работает, вы всегда можете просто переписать несколько строк кода, чтобы убрать любые скрытые синтаксические ошибки, которые вы могли не увидеть. Это может быть опасно, так как вы можете переписать не ту секцию, но это может помочь.

Ошибки компоновщика

После того как вы окончательно исправили все ошибки синтаксиса, вздремнули, перекусили пару раз и морально подготовили себя к правильной компиляции программы, вы все равно можете столкнуться с ошибками компоновщика. Их часто довольно сложно исправить, потому что они не обязательно являются результатом того, что написано в вашей программе. Я вкратце опишу типичные видов ошибок компоновщика, которые можно ожидать, и некоторые пути их решения.

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

undefined function

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

Ошибки компоновщика могут произойти в функциях, которые вы объявили и определили, если вы не включили все необходимые объектные файлы в процесс связывания. Например, если вы пишете определение класса в myClass.cpp, а ваша основная функция в myMain.cpp, компилятор создаст два объектных файла, myClass.o и myMain.o, а компоновщику будут нужны оба из них для завершения создания новой программы. Если оставить myClass.o, то у него не будет определения класса, даже если вы правильно включите myClass.h!

Иногда появляются незначительные ошибки, когда компоновщик сообщает о более чем одном определении для класса, функции или переменной. Эта проблема может появиться по нескольким причинам: во-первых, у объекта может быть два определения — например, две глобальные переменные объявлены как внешние переменные, чтобы быть доступными за пределами файла исходного кода. Это относится как к функциям, так и к переменным, и это, на самом деле, нередко случается. С другой стороны, иногда это проблема с директивами компоновщика; несколько раз я видел, как люди включают несколько копий одного и того же объектного файла в процесс связывания. И бинго, у вас есть несколько определений. Типичным проявлением этой проблемы является то, что у целого ряда функций есть несколько определений.

Последний странный тип ошибки компоновщика — сообщение

undefined reference to main

Данная ошибка компоновщика отличается от других тем, что она может не иметь ничего общего с объектом, включая файлы или правильные пути к вашей библиотеке. Напротив, это означает, что компоновщик пытался создать исполняемый файл и не смог понять, где расположена функция main(). Это может случиться, если вы забыли включить основную функцию, или, если вы попытаетесь скомпилировать код, который никогда не был отдельным исполняемым файлом (например, если вы попытались скомпилировать библиотеку).

Что значит ошибка при компиляции

На чтение 4 мин Опубликовано Обновлено

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

Ошибка при компиляции — это сообщение, которое компилятор выдает, когда встречает проблему в исходном коде. Ошибки могут быть вызваны различными причинами, такими как синтаксические ошибки, отсутствие необходимых библиотек или некорректные параметры.

Чтобы исправить ошибку при компиляции, необходимо внимательно изучить сообщение об ошибке, предоставленное компилятором. В сообщении об ошибке обычно указывается место в коде, где ошибка произошла, и описание возникшей проблемы. Самый простой способ исправить ошибку — это внести соответствующие изменения в код в соответствии с указаниями компилятора.

Ошибки при компиляции неизбежны в процессе разработки программного обеспечения, но важно уметь справляться с ними. Чем глубже понимание языка программирования, тем проще будет избегать ошибок и быстрее исправлять их при их возникновении.

Содержание

  1. Ошибки при компиляции: понятие и значение
  2. Исправление ошибок при компиляции: основные подходы
  3. Практические советы по устранению ошибок при компиляции

Ошибки при компиляции: понятие и значение

Ошибки при компиляции происходят из-за несоответствия синтаксиса языка программирования или правил компилятора. При обнаружении ошибки компилятор выдаст сообщение с указанием проблемного места в коде и описанием причины ошибки. Ошибки при компиляции могут быть разного типа и варьироваться по сложности.

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

Исправление ошибок при компиляции может быть необходимым для успешной компиляции программы и получения исполняемого файла. Для исправления ошибок разработчику рекомендуется внимательно прочитать сообщение об ошибке, выяснить причину ошибки и внести необходимые изменения в код. Исправление ошибок при компиляции – это важный шаг к получению рабочего программного продукта.

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

Исправление ошибок при компиляции: основные подходы

Вот несколько основных подходов к исправлению ошибок при компиляции:

  1. Проверьте синтаксис кода: Зачастую, ошибка при компиляции может быть вызвана нарушением синтаксиса в исходном коде. Проверьте правильность расстановки скобок, точек с запятой и других синтаксических элементов. Используйте текстовый редактор или интегрированную среду разработки для подсветки и предупреждения о синтаксических ошибках.
  2. Изучите сообщение об ошибке: Когда компилятор обнаруживает ошибку, он обычно выводит соответствующее сообщение с описанием проблемы и указанием на конкретные строки кода, где произошла ошибка. Внимательно изучите это сообщение, чтобы понять, что именно вызвало проблему.
  3. Проверьте зависимости и библиотеки: Ошибки при компиляции могут быть вызваны неправильными или отсутствующими зависимостями и библиотеками. Убедитесь, что все необходимые зависимости установлены и настроены правильно. Проверьте версии использованных библиотек и убедитесь, что они совместимы и подходят для вашего проекта.
  4. Проверьте настройки компилятора: Ошибки при компиляции могут быть вызваны неправильными настройками компилятора. Убедитесь, что выбрана правильная версия языка программирования и компилятора. Проверьте опции компилятора и установите необходимые флаги и параметры конфигурации.
  5. Проанализируйте логи компиляции: Компилятор обычно создает лог-файлы, которые содержат дополнительную информацию о процессе компиляции и обнаруженных ошибках. Проанализируйте эти логи, чтобы получить более подробную информацию о проблеме и попытаться найти ее источник.

Решение ошибок при компиляции требует внимательного и систематического подхода. Важно понимать причину возникновения ошибки и применять соответствующие методы ее исправления. Заранее проверяйте свой код на предмет возможных ошибок и следуйте лучшим практикам программирования для снижения вероятности возникновения проблем при компиляции.

Практические советы по устранению ошибок при компиляции

Совет Описание
1 Внимательно прочитайте сообщение об ошибке
2 Проверьте синтаксические ошибки
3 Проверьте типы данных
4 Убедитесь, что все необходимые библиотеки включены
5 Проверьте правильность закрытия скобок и кавычек
6 Выберите правильный компилятор и версию языка программирования
7 Проверьте правильность настроек компилятора
8 Проверьте наличие неиспользуемых переменных или функций
9 Используйте отладчик для выявления проблемных мест в коде
10 Обратитесь к документации и сообществу разработчиков для помощи

Следуя этим советам, вы сможете более эффективно устранять ошибки при компиляции и продолжать работу над вашим проектом. Не забывайте, что ошибка при компиляции — это всего лишь временное препятствие, и с правильным подходом ее можно успешно преодолеть.

Устранение ошибок компиляции

Если компилятор обнаруживает ошибку в коде, он выводит сообщение об ошибке в Output window:

Вывод сообщения об ошибке

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

Вы можете перейти к следующей ошибке с помощью клавиши [F4], а к предыдущей при помощи сочетания клавиш [Shift + F4]. Иногда компилятор генерирует несколько сообщений, чтобы дать больше информации о проблемах, которые он обнаружил.

Intellisense: Обнаружение ошибок при вводе

Visual Micro поддерживает технологию под названием IntelliSense. Intellisense пытается найти ошибки по мере того как Вы набираете код, без попыток его компиляции. Это экономит много времени и дает мгновенный отклик при появлении ошибки.

IntelliSense подчеркивает ошибочные области кода красной волнистой линий примерно так, как подчеркивает неправильные слова и предложения инструмент проверки орфографии в текстовом редакторе или почтовой программе. Если Вы наведете курсор мыши на подчеркнутый блок кода, всплывет подсказка, содержащая описание ошибки:

Intellisense показывает ошибку

Советы по устранению ошибок компиляции

Иногда компилятор может выдавать много сообщений об ошибках, которые имеют одну и ту же причину. Не удивляйтесь, если получаете много сообщений об ошибках, часто это единственная ошибка, приводившая все сообщения.
Следующие советы помогут эффективнее устранять ошибки компиляции.

  • Просматривайте сообщения об ошибках сверху вниз
    Начните с первого сообщения и исправьте ошибку. Если последующие сообщения выглядят странными, они могут быть косвенными ошибками, порожденными первой ошибкой. Перекомпилируйте скетч. Если сообщения были «фантомными», т.е. наведенными ошибкой, которую Вы исправили, они исчезнут.
  • Если есть много сообщений об ошибках в тех блоках кода, которые прежде компилировались, то Вы могли случайно поставить слишком мало или слишком много фигурных скобок (‘{‘, ‘}’). Если поместить курсор на одну фигурную скобку и нажать Ctrl +], Visual Studio перейдет к парной скобке. Если парная скобка не так, которую Вы ожидали увидеть, то в коде есть лишние или недостающие скобки.

    Горячая клавиша перехода к парной скобке в средах Visual Studio / Atmel Studio может зависеть от раскладки клавиатуры.

  • Найти помощь в Интернете, например на www.cprogramming.com или www.stackoverflow.com. Используйте сообщение об ошибке компилятора в качестве строки поиска на этих сайтах или просто введите его в любимый поисковик.

Как исправить ошибку при компиляции?

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

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

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

3. Проверьте синтаксис:
Одной из причин, почему код не компилируется, может быть нарушение синтаксиса языка программирования. Проверьте код на наличие синтаксических ошибок, таких как неправильное использование знаков препинания, непарные скобки, неправильное написание ключевых слов и т.д. Воспользуйтесь средствами автоматической проверки синтаксиса, предоставляемыми вашей интегрированной средой разработки (IDE) или другими инструментами.

4. Проверьте типы данных и объявления переменных:
Иногда некорректное объявление переменных или ошибки в типах данных могут вызывать ошибки компиляции. Убедитесь в том, что типы данных, используемые в коде, соответствуют требованиям языка программирования. Проверьте также объявления переменных на отсутствие ошибок, таких как неправильные имена переменных или повторное объявление.

5. Установите правильные зависимости и библиотеки:
Если ваш код зависит от внешних библиотек или файлов, убедитесь, что они установлены и доступны для компиляции. Необходимые зависимости должны быть либо установлены в системе, либо включены в ваш проект. Проверьте пути к файлам и названия библиотек, чтобы убедиться, что они указаны корректно и соответствуют требуемым спецификациям.

6. Обновите компилятор и инструменты:
Если вы используете старую версию компилятора или инструментов разработки, ошибка компиляции может быть вызвана несовместимостью с текущей версией языка программирования или другими изменениями в среде разработки. Обновите свои инструменты до последней версии, чтобы устранить возможные проблемы.

7. Обратитесь к сообществу или форумам:
Если все предыдущие шаги не помогли вам найти решение, обратитесь за помощью к сообществу программистов или посетите форумы, посвященные вашему языку программирования или платформе разработки. Там вы можете задать вопрос и получить советы от опытных разработчиков, которые сталкивались с подобными проблемами.

8. Отладка кода:
Если все остальные методы не дают результатов, попробуйте отладить код. Используйте отладчик, чтобы узнать, где именно возникает ошибка, и проанализируйте значения переменных и выполнение программы на данном этапе. Это может помочь вам определить, какая часть кода вызывает ошибку, и найти способ ее исправить.

9. Постепенное внесение изменений:
Когда вы нашли проблему, попробуйте найти область кода, где ошибка возникает, и последовательно внесите изменения для изоляции ошибки и проверки, как это влияет на компиляцию. Это может помочь вам найти конкретное изменение, которое вызывает проблему, и сфокусироваться на ее исправлении.

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

Надеюсь, эта статья помогла вам лучше понять, как исправить ошибки при компиляции. Успехов в разработке программного обеспечения!


13-12-2020, 16:31
8 комментариев

Даже опытные программисты-«ардуинщики» могут столкнуться с ошибками компиляции. Исправить их не сложно, а вот найти порой не так просто. Мы решили рассказать сегодня в деталях, какие системные ошибки чаще возникают на различных платах Ардуино, как их исправить и по возможности избежать. 

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

Для быстрого поиска ошибки советуем рассмотреть строку-подсказку. Ничего не помогло? Тогда для вас наша подборка наиболее распространенных синтаксических ошибок:

С синтаксисом все понятно – вставляем пропущенные символы, убираем лишние знаки, возвращаем функции по умолчанию.
Напомним, в среде разработки Ардуино IDE можно заливать скетчи для различных микроконтроллеров. По умолчанию обычно указана плата Genuino Uno. Если вы работаете с Mega, следует выбрать именно эту платформу (меню «Сервис»), иначе вас ожидает неприятное предупреждение: “programmer is not responding”.

Ошибка компиляции для платы Arduino Uno чаще всего возникает из-за проблем, связанных с библиотеками, например, неправильно подключили, не то ПО инсталлировали. В этом случае вы увидите напоминание fatal error: … No such file or directory” (библиотека не перенесена в папку libraries) или redefinition of void setup”.


Обозначенная на скриншоте ERROR означает, что программирование завершилось некорректно (расшифровываем: внутренние проблемы с компилятором, не обновили версию IDE, сбой в библиотеке, неправильный выбор разрядности операционной системы и др.). 
Важно! Не забывайте использовать подсказки приложения – они очень помогают. Включаем тут: Файл -> Настройки -> «Показать подробный вывод во время компиляции».

Что делать, если произошла ошибка при загрузке скетча Arduino Nano. Тут могут быть те же причины, что мы описали выше. Особых отличий в компиляции плат нет, главное, их правильный выбор первоначально. Однако часто пользователи настраивают не те показатели скорости порта: 9600 вместо необходимых 57600 либо не имеют соответствующих драйверов на устройствах – все это нужно проверить и исправить!

Понравилась статья? Поделить с друзьями:
  • Исправление ошибок на памятнике
  • Исправление ошибок сети
  • Исправление ошибок после сдачи годового отчета
  • Исправление ошибок картинки для презентации
  • Исправление ошибок аутлук