Иллюстрированный самоучитель по Turbo Pascal

Сообщения об ошибках периода компиляции

44 Field identifier expected (Нужен идентификатор поля).

Попытка использовать запись целиком в том месте, где требуется ссылка на какое-либо поле записи.

45 Object file too large (Объектный файл слишком большой).

Турбо Паскаль не может компоновать файлы .OBJ больше 64 Кбайт.

46 Undefined external (Неопределенная внешняя процедура).

Внешняя процедура или функция не имеет соответствующего определения PUBLIC в объектном файле. Убедитесь, что Вы указали все объектные файлы в директивах {$L <имя.OBJ-файлa>} и проверьте написание идентификаторов процедуры или функции в файле .ASM.

47 Invalid object file record (Неправильная запись объектного файла).

Файл .OBJ содержит неверную объектную запись. Убедитесь, что данный файл является действительно файлом .OBJ.

48 Code segment too large (Сегмент кода слишком большой).

Максимальный размер кода программы или программного модуля равняется 65520 байтам. Разбейте Вашу программу или модуль на два или более модулей.

49 Data segment too large (Сегмент данных слишком велик).

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

50 DO expected (Нужен оператор DO).

51 Invalid PUBLIC definition (Неверное PUBLIC-определение).

Возможные причины сообщения:

  • данный идентификатор получил тип PUBLIC с помощью соответствующей директивы языка ассемблера, но не соответствует описанию EXTERNAL в программе или программном модуле Паскаля;
  • две или более директивы PUBLIC языка ассемблера определяют один и тот же идентификатор;
  • файлы .OBJ определяют символы PUBLIC, не находящиеся в сегменте CODE.

52 Invalid EXTRN definition (Неправильное EXTRN-определение).

Возможные причины сообщения:

  • программа на ассемблере ссылается с помощью директивы EXTRN на идентификатор, который не описан в программе на Паскале и не был описан в интерфейсных секциях используемых программных модулей;
  • ассемблерная программа ссылается на идентификатор, обозначающий абсолютную переменную (т.е. определенную словом ABSOLUTE);
  • ассемблерная программа ссылается на идентификатор процедуры или функции типа INLINE.

53 Too many EXTRN definition (Слишком много EXTRN-определений).

Турбо Паскаль не может обрабатывать файлы .OBJ при более чем 256 определениях EXTRN.

54 OF expected (Требуется OF).

55 INTERFACE expected (Требуется интерфейсная секция).

56 Invalid relocatable reference (Неправильная перемещаемая ссылка).

Возможные причины сообщения:

  • файл .OBJ содержит данные и перемещаемые ссылки в сегментах, отличных от CODE. Например, Вы пытаетесь описать инициализированные переменные в сегменте DATA;
  • файл .OBJ содержит ссылки с размерами в байтах на перемещаемые символы. Такая ошибка происходит в случае, если Вы используете операторы HIGH и LOW с перемещаемыми символами или если Вы ссылаетесь в директивах DB на перемещаемые символы;
  • операнд ссылается на перемещаемый символ, который не был определен в сегменте CODE или в сегменте DATA;
  • операнд ссылается на процедуру EXTRN или функцию EXTRN со сдвигом, например, CALL SortProc+8.

57 THEN expected (Требуется THEN).

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