Таблица 36. Сообщения об ошибках на шаге компиляции
Ниже приводятся коды ошибок и сообщения об ошибках, генерируемые компилятором языка Турбо-Паскаль. Кроме перевода сообщений в некоторых случаях даются необходимые пояснения, а также рекомендации по устранению ошибок.
Код ошибки
| Сообщение об ошибке
| Перевод сообщения, возможная причина ошибки и рекомендации для ее устранения
|
| Out of memory
| «не хватает памяти» —
Компилятор извещает, что доступной памяти недостаточно для размещения программы. Чтобы устранить ошибку, рекомендуется удалить из памяти ранее загруженные, но не используемые в данный момент программы, или указать, что объектный код должен выводиться на диск. Если это не дает результата, следует разделить программу или модуль на большее число модулей
|
| Identifier expected
| «ожидается идентификатор» —
Возможно, в качестве идентификатора использовано зарезервированное слово
|
| Unknown identifier
| «неизвестный идентификатор» —
Идентификатор не объявлен
|
| Duplicate identifier
| «дублируемый идентификатор» —
Идентификатор объявлен дважды
|
| Syntax error
| «синтаксическая ошибка» —
Обнаружен символ, отсутствующий в алфавите языка
|
| Error in real constant
| ошибка в записи константы вещественного типа
|
| Error in integer constant
| ошибка в записи константы целого типа
|
| String constant exceeds line
| «длина строковой константы превышает максимально допустимую длину строки» —
Возможно, отсутствует закрывающий апостроф
|
| Too many nested files
| «слишком много вложенных файлов» —
При включении исходных файлов (с помощью директив {$1 < имя файла > }) компилятор допускает не более 15 уровней вложенности
|
| Unexpected end of file
| «несвоевременное появление признака конца файла»
Возможно, не совпадает количество операторов begin и end или не закрыт комментарий
|
| Line too long
| «слишком длинная строка» —
Длина строки превысила 126 символов
|
| Type identifier expected
| «ожидается идентификатор типа» —
В объявлении отсутствует идентификатор типа
|
| Too many open files
| «слишком много открытых файлов» —
Следует задать большее число файлов в CONFIG.SYS (в записи FILES = < число)
|
| Invalid file name
| неправильно задано имя файла
|
| File not found
| файл не найден
|
| Disk full
| на диске нет свободного места
|
| Invalid compiler directive
| неправильно записана директива компилятора
|
| Too many files
| «слишком много файлов» —
С помощью директив {$1 < имя файла> } включается чрезмерное количество исходных файлов
|
| Undefined type in pointer definition
| «необъявленный тип в объявлении указателя» —
Не объявлен тип данных, указанный в объявлении ссылочного типа
|
| Variable identifier expected
| ожидается идентификатор переменной
|
| Error in type
| ошибка в объявлении типа
|
| Structure too large
| «структура слишком большая» —
Превышен допустимый размер (65520 байт) области памяти для данных структурированного типа
|
| Set base type out of range
| «число значений базового типа для множества превышает допустимое» —
Базовый тип не должен содержать более 256 значений
|
| File components may not be files or objects
| компонентами файла не могут быть файлы или объекты
|
| Invalid string length
| «недопустимая длина строки» —
Превышена максимально допустимая длина строки (255)
|
| Type mismatch
| «несоответствие типов» —
Не соответствуют друг другу типы данных в выражении
|
| Invalid subrange base type
| недопустимый базовый тип для интервального типа
|
| Lower bound greater than upper bound
| нижняя граница больше верхней границы
|
| Ordinal type expected
| ожидается ссылка на порядковый тип
|
| Integer constant expected
| ожидается целая константа
|
| Constant expected
| ожидается константа
|
| Integer or real constant expected
| ожидается целая или вещественная константа
|
| Type identifier expected
| ожидается идентификатор типа
|
| Invalid function result type
| недопустимый тип результата функции
|
| Label identifier expected
| ожидается идентификатор метки
|
| Begin expected
| ожидается зарезервированное слово begin
|
| End expected
| ожидается зарезервированное слово end
|
| Integer expession expected
| ожидается выражение целого типа)
|
| Ordinal expession expected
| ожидается выражение порядкового типа
|
| Boolean expression expected
| ожидается выражение булевого типа
|
| Operand types do not match operator
| типы операндов не соответствуют оператору
|
| Error in expression
| ошибка в выражении
|
| Illegal assignment
| неправильное присваивание
|
| Field identifier expected
| ожидается идентификатор поля записи
|
| Object file too large
| «объектный файл слишком большой» —
OBJ-файл превысил максимально допустимый размер (65520 байт)
|
| Undefined external
| «не определена внешняя подпрограмма» —
Вероятно, во внешней подпрограмме отсутствует соответствующее определение PUBLIC
|
| Invalid object file record
| «нераспознаваемая запись объектного файла» —
Вероятно, объектный файл искажен
|
| Code Segment too large
| «кодовый сегмент слишком велик» —
Превышен максимально допустимый размер кода программы или модуля (65520 байтов)
|
| Data segment too large
| «сегмент данных слишком велик» —
Превышен максимально допустимый размер сегмента данных (65520 байтов)
|
| Do expected
| ожидается ключевое слово DO
|
| Invalid PUBLIC definition
| «неправильное определение public» —
Несоответствие определения PUBLIC в программе на Ассемблере и директивы external в программе или модуле на Паскале
|
| Invalid EXTRN definition
| «неправильное определение extrn» —
Вероятно, фрагмент программы на языке Ассемблера не объявлен в программе или модуле
|
| Too many EXTRN ltfinition
| «слишком много определений extrn» —
Максимально допустимое число определений EXTRN в Obj-файле равно 256
|
| OF expected
| ожидается зарезервированное слово OF
|
| INTERFACE expected
| ожидается зарезервированное слово INTERFACE
|
| Invalid relocatable
| «неправильно определена смещенная ссылка» —
Вероятно, во фрагменте программы на языке Ассемблера неправильно задано смещение адреса
|
| THEN expected
| ожидается зарезервированное слово Then
|
| TO or DOWNTO expected
| ожидается зарезервированное слово To или downto
|
| Undefined forward
| не завершено опережающее объявление
|
| Too many procedures
| «слишком много процедур» —
Превышено максимально допустимое (512) количество подпрограмм, объявленных в программе или модуле
|
| Invalid Typecast
| неверно описанное преобразование типов
|
62
| Division by zero
| деление на нуль
|
| Invalid file type
| неправильно задан файловый тип
|
| Cannot Read or Write variables of type
| «нельзя читать или писать переменные этого типа» —
Предпринята попытка чтения/записи данных, не обрабатываемых процедурами Read/Readln и Write/Writeln.
|
| Pointer variable expected
| ожидается переменная ссылочного типа
|
| String variable expected
| ожидается строковая переменная
|
| String expession expected
| ожидается выражение строкового типа
|
| Circular unit reference
| «циклические ссылки модулей» —
Не допускается, чтобы два модуля ссылались друг на друга
|
| Unit name mismatch
| «неправильное имя модуля» —
Модуль, имя которого задано в директиве Uses, не найден
|
| Unit version mismatch
| «неверная версия модуля» —
Модуль, подключаемый к программе, был изменен после компиляции
|
| Duplicate unit name
| имя модуля дублируется в директиве uses
|
| Unit file format error
| ошибка в спецификации файла модуля
|
| Implementation expected
| ожидается зарезервированное слово implementation
|
| Constant and case types do not match
| типы констант и селектора в операторе case не соответствуют друг другу
|
| Record variable expected
| ожидается переменная комбинированного типа
|
| Constant out of range
| константа не укладывается в допустимый диапазон
|
| File variable expected
| ожидается переменная файлового типа
|
| Pointer expression expected
| ожидается выражение ссылочного типа
|
| Integer or real expression expected
| ожидается выражение типа integer или real
|
| Label not within current block
| метка находится вне текущего блока
|
| Label already defined
| метка ранее уже объявлена
|
| Undefined label in preceding statement part
| необъявленная метка в предыдущей части раздела операторов
|
| Invalid @ argument
| неправильный аргумент оператора @
|
| UNIT expected
| ожидается зарезервированное слово unit
|
| “; ” expected
| ожидается точка с запятой
|
| ”: ” expected
| ожидается двоеточие
|
| “, ” expected
| ожидается запятая
|
| “(“ expected
| ожидается открывающая круглая скобка
|
| “)” expected
| ожидается закрывающая круглая скобка
|
| “=”' expected
| ожидается знак равенства
|
| ”: =" expected
| ожидается знак присваивания
|
| ”[“' or " (" expected
| ожидаются знаки “[“ или “(“
|
| ”]” or “)” expected
| ожидаются знаки ']' или ')'
|
| ”.” expected
| ожидается точка
|
| ”..” expected
| ожидается горизонтальное двоеточие
|
| Too many variables
| «слишком много переменных» —
Максимально допустимый размер памяти для размещения переменных равен 64К: – глобальных, объявленных в программе или модуле; – локальных, объявленных в подпрограмме
|
| Invalid FOR control variable
| «неправильная переменная цикла в операторе for» —
Переменная цикла в операторе for должна принадлежать одному из простых типов
|
| Integer variable expected
| ожидается переменная целого типа
|
| File and procedure types are not allowed here
| в данном контексте файловый и процедурный типы недопустимы
|
| String length mismatch
| «неправильная длина строки» —
Длина строковой константы не соответствует количеству элементов символьного массива.
|
| Invalid ordering of fields
| неправильный порядок следования полей
|
| String constant expected
| ожидается константа строкового типа
|
| Integer or real variable expected
| ожидается переменная типа integer или real
|
| Ordinal variable expected
| ожидается переменная порядкового типа
|
| INLINE error
| ошибка в директиве inline
|
| Character expession expected
| ожидается выражение символьного типа
|
| Too many relocation items
| «слишком много перемещаемых элементов» —
Размер таблицы перемещаемых символов в объектном файле превышает 64К байта. Это означает, что программа слишком велика, чтобы ее смог обработать компоновщик Турбо-Паскаля.
|
| Overflow in arithmetic operation.
| переполнение при выполнении арифметической операции
|
| No enclosing For, While or Repeat statement.
| использование операторов Break и Continue вне пределов цикла
|
| Case constant out of range
| «в операторе case константа не вписывается в допустимый диапазон» —
Целочисленные константы, используемые в операторе case, должны находиться в пределах от -32768 до 32767.
|
| Error in statement
| ошибка в операторе
|
| Cannot call an interrupt procedure
| не вызывается процедура прерывания
|
| Must be in 8087 mode to compile this
| «для компиляции данной конструкции должен быть установлен режим сопроцессора» —
Данная конструкция может быть откомпилирована только в режиме {$ N+}.
|
| Target address not found
| «заданный адрес отсутствует» —
Не обнаружен оператор, расположенный по заданному адресу.
|
| Included files are not allowed here
| «в заданном месте не допускается включение файла» —
Исходные файлы нельзя включать внутри раздела операторов.
|
| No inherited methods are accesible here.
| неправильное использование ключевого слова Inherited
|
| Invalid Qualifier
| «неправильно указан квалификатор» —
Возможны следующие причины появления сообщения: задан индекс переменной, не объявленной как массив; задано поле переменной, не объявленной как запись; в качестве указателя используется переменная, не объявленная как ссылочная
|
| Invalid variable reference
| неправильная ссылка на переменную
|
| Too many symbols
| «слишком много символов» —
Длина текста программы или модуля превышает 64К байта
|
| Statement part too large
| «слишком велик раздел операторов» —
Превышен максимально допустимый размер раздела операторов программы (около 24К байт)
|
| Files must be var parameters
| «файлы должны быть параметрами-переменными» —
Параметры файлового типа в объявлении подпрограмм должны описываться как переменные.
|
| Too many conditional symbols
| «слишком много условных символов» —
Недостаточно памяти для размещения имен, указанных в директивах условной компиляции
Рекомендуется укоротить одно или несколько символических имен
|
| Misplaced conditional directive
| несоответствие директив условной компиляции
|
| ENDIF directive missing
| отсутствует директива {$ ENDIF}
|
| Error in initial conditional defines
| «ошибка в установке условных определений» —
Условия компиляции, заданные в Options/Compiler/ Conditional defines, должны разделяться пробелами, запятыми или точками с запятой
|
| Header does not match previous definition
| «заголовок не соответствует предыдущему определению» —
Заголовок подпрограммы, заданный в секции связи модуля или в объявлении, использующем forward, не соответствует данному заголовку
|
| Critical disk error
| серьезная ошибка дискового накопителя
|
| Cannot evaluate this expression
| данное выражение невозможно вычислить
|
| Expession incorrectly terminated
| «неправильно завершено выражение» —
Вероятно, отсутствует точка с запятой
|
| Invalid format specifier
| неправильная спецификация формата
|
| Invalid indirect reference
| «неправильная косвенная ссылка» —
Возможно, используется переменная типа absolute, базовая переменная которой не объявлена в данном модуле
|
| Structured variables are not allowed here
| в данном контексте структурные переменные недопустимы
|
| Cannot evaluate without System unit
| нельзя вычислить без модуля System
|
| Cannot access this symbol
| «невозможен доступ к данному символу» —
Доступ к некоторым идентификаторам, например, переменным, возможен только после начала фактического выполнения программы
|
| Invalid floating-point operation
| «неправильная операция с плавающей точкой»» —
Операция над двумя значениями вещественного типа привела к переполнению или делению на нуль
|
| Cannot compile overlay to memory
| нельзя компилировать код оверлейной программы в память
|
| Procedure or function variable expected
| ожидается переменная типа procedure или function
|
| Invalid procedure or function reference
| неправильная ссылка на процедуру или функцию
|
| Cannot overlay this unit
| «данный модуль нельзя сделать оверлейным» —
Предпринята попытка объявить оверлейным модуль, который был откомпилирован без директивы {$0+ }.
|
| Too many nested scopes
| использование недопустимо большого числа вложенных элементов языка
|
| File access denied
| попытка использовать файл, предназначенный только для считывания, как выходной
|
| Object type expected
| ожидается объектный тип
|
| Local object types are not allowed
| «локальный объектный тип недопустим» —
Объектный тип не должен объявляться в подпрограмме
|
| VIRTUAL expected
| ожидается зарезервированное слово virtual
|
| Method identifier expected
| ожидается идентификатор метода
|
| Virtual constructors are not allowed
| «виртуальные конструкторы недопустимы» —
Метод-конструктор может быть только статическим
|
| Constructor identifier expected
| ожидается идентификатор конструктора
|
| Destructor identifier expected
| ожидается идентификатор деструктора
|
| Fail only allowed withing constructors
| «процедуру Fail можно использовать только внутри конструкторов»
|
| Invalid combination of opcode and operands
| «неправильное сочетание кода операции и операндов» —
Код операции Ассемблера не допускает данного сочетания операндов
|
| Memory reference expected
| «ожидается ссылка на элемент памяти» —
Вероятно, регистровый операнд не заключен в квадратные скобки
|
| Cannot add or subtract relocatable symbols
| сложение или вычитание переместимых символов недопустимо
|
| Invalid register combination
| указана неправильная комбинация регистров
|
| 286/287 Instructions are not enabled
| «не разрешены инструкции процессора 286/287» —
Отсутствует директива компилятора {$G+}, разрешающая использовать операции 286/287
|
| Invalid symbol reference
| «неправильная ссылка на символ» —
Данный символ нельзя использовать в ассемблерном операнде
|
| Code generation error
| ошибка при генерации кода
|
| ASM expected
| ожидается зарезервированное слово ASM
|