Ниже приводятся сообщения об ошибках, генерируемые Borland С++. В Borland C++ имеются следующие категории ошибок: ошибки этапа выполнения, ошибки этапа компиляции, ошибки компилятора справочников Help, ошибки TLIB и ошибки TLINK. Эти ошибки поясняются в данном приложении. Сообщения об ошибках, выводимые системой интерфейса с пользователем, поясняются в файлах документации на дистрибутивных дисках.
Сначала указывается тип сообщения (например, сообщение этапа компиляции или сообщение утилиты Help). В большинстве пояснений указывается возможная причина ошибки, как можно от нее избавиться или приводится предупреждающее сообщение.
Сообщения об ошибках перечислены в алфавитном порядке, по старшинству символов ASCII; обычно первыми идут сообщения, начинающиеся символами (равенство, запятая, фигурная скобка и т.д.).
Поскольку сообщения, в которых на первом месте выводится имя, специфическое для данной программы, не могут быть расставлены по алфавиту, то они также находятся в начальной части каждого списка сообщений.
Например, если у вас имеется функция С++ goforit, то фактически вы можете получить сообщение об ошибке:
goforit must be declared with no arguments
Для того, чтобы найти описание данного сообщения в этой главе, искать следует сообщение:
функция must be declared with no arguments
в начале списка сообщений об ошибках. Сообщение упорядочивается
по алфавиту по слову "must".
Если же некоторая переменная включается в текст сообщения позже (например, "Address of overloaded function функция doesn't match типу"), то такое сообщение можно найти по алфавиту, в данном случае на букву A.
Вы можете получать сообщения различного типа, в зависимости от того, откуда они поступают.
Фатальные ошибки генерируются компилятором, компоновщиком и утилитой MAKE и приводят с немедленному прекращению процесса компиляции. Если такую ошибку генерирует компилятор или утилита MAKE, то файл .EXE не создается. Если фатальная ошибка генерируется компоновщиком, то файл .EXE может создаваться.
Фатальные ошибки встречаются редко. Некоторые из них указывают на внутреннюю ошибку компилятора. Вы должны выполнить соответствующие действия, а затем
Сообщения об ошибках могут генерироваться компилятором, ком- поновщиком, утилитой MAKE или библиотекарем. Кроме того, такие ошибки может генерировать программа на этапе выполнения.
Нефатальные ошибки, генерируемые компилятором, указывают на синтаксические ошибки в программе, ошибки командной строки или ошибки, вызванные ситуациями на диске или в памяти. Компилятор завершает текущую фазу компиляции и прекращает работу. На каждой фазе компиляции (препроцессорная обработка, синтаксический анализ, оптимизация и генерация кода) компилятор пытается найти максимально возможное число ошибок.
Ошибки, генерируемые компоновщиком, не приводят к удалению файлов .EXE или .MAP, однако выполнять такой файл .EXE не следует. При компиляции из IDE сообщения компоновщика об ошибках рассматриваются как фатальные ошибки.
Утилита MAKE генерирует ошибки при неверном синтаксисе или семантических ошибках формирующего файла. Чтобы исправить их, нужно отредактировать формирующий файл.
Сообщения об ошибках на этапе выполнения обычно вызываются логическими ошибками в программе. Нужно исправить причину и перекомпилировать программу.
Предупреждения могут генерироваться компилятором, компоновщиком или библиотекарем. Они не приводят к прекращению компиляции и указывают на условия, которые являются подозрительными, но представляют собой допустимую часть языка. Компилятор также генерирует предупреждения, если вы используете в программе машинно-зависимые конструкции.
В выводимых компилятором сообщениях сначала указывается класс сообщения, затем имя исходного файла и номер строки, в которой компилятор обнаружил данное условие, и наконец текст сообщения.
Компилятор справочников выводит на экран сообщение, когда в
процессе построения файла ресурсов обнаруживается та или иная
ошибка. Ошибки, обнаруживаемые при обработке файла описания проекта, имеют коды, начинающиеся с префикса P, а соответствующие
сообщения выглядят следующим образом:
Error P1025: line...7 of filename.HPJ : Section heading
sectionname unrecognized.
Warning P1039: line...38 of filename.HPJ : [BUILDTAGS]
section missed.
Ошибки, обнаруживаемые при обработке информационных файлов
(.RTF), имеют коды, начинающиеся с префикса R, а соответствующие
сообщения выглядят следующим образом:
Error R2025 : File environment error.
Warning R2501 : Using old-key phrase table.
Если это возможно, компилятор сообщает номер статьи и/или имя информационного файла, где обнаружена ошибка. Номер статьи, сообщаемый компилятором, представляет собой ее порядковый номер в файле .RTF (первая, вторая и т.д.). Эти номера могут совпадать с номером страницы, показываемым текстовым процессором, в зависимости от того, какую длину гипотетической страницы (в строках) вы установили. Напомним, что статьи в информационных файлах отделяются знаком "конец страницы", хотя в справочной системе понятие "страница" не используется.
Сообщения, начинающиеся со слова Error (Ошибка) соответствуют серьезным (фатальным) ошибкам. Сообщения о таких ошибках выводятся на экран всегда и при их возникновении построение справочного файла не производится. Сообщения, начинающиеся с Warning (Предупреждение), связаны с менее серьезными ошибками. При наличии ошибок только второго типа, процесс компиляции проходит до конца и создается соответствующий справочный файл, который может быть использован в рамках системы интерактивной документации Windows. Однако при этом справочник Help может функционировать не совсем так, как задумывалось разработчиком. Количество предупредительных сообщений, выводимых компилятором на экран, может регулироваться пользователем.
При обработке файла описания проекта компилятор игнорирует ошибочные строки и пытается продолжить компиляцию. Это означает, что ошибки, обнаруженные на начальном этапе обработки, могут приводить к лавине наведенных ошибок на следующих этапах. Аналогично обрабатываются ошибки в информационных файлах: если ошибка, которая произошла при обработке файлов тем справочника, не очень серьезная, то компиляция продолжается. В качестве реакции на единственную ошибку в информационном файле компилятор может выдавать сразу несколько сообщений. Так при ошибке в идентификаторе определенной статьи на экран будет выводиться сообщение об ошибке всякий раз, когда компилятор будет встречать в информационном файле ссылку на эту статью. Такая ошибка легко устраняется путем простой коррекции текста сноски, определяющего контекстную строку этой статьи.
Назад | Содержание | Вперед