> > > >

ID's ошибок и предупреждений компилятора

Сообщения
1.114
Рейтинг
1531
#1
Автор: minimiller
Перевод и редактирование: DJ_WEST
Источники: amx-x
Добавлено: Весь список ошибок и предупреждений, перевод части id

error 001

expected token: "%s", but found "%s"

ожидался символ: "%s", но был найден "%s"

error 002

only a single statement (or expression) can follow each "case"

только одно заявление (или выражение) могут следовать за "case"

error 003

declaration of a local variable must appear in a compound block

объявленная локальная переменная должна использоваться в этом же блоке

error 004

function "%s" is not implemented

функция %s не реализована

error 005

function may not have arguments

функция не имеет аргументов

error 006

must be assigned to an array

должен быть присвоен массив

error 007

operator cannot be redefined

оператор не может быть установлен еще раз

error 008

must be a constant expression; assumed zero

должно быть постоянным выражением; равным нулю

error 009

invalid array size (negative or zero)

неверный размер массива (отрицательный или 0)

error 010

invalid function or declaration

неизвестная функция или декларация

error 011

invalid outside functions

неверно вне функции

error 012

invalid function call, not a valid address

неверный вызов функции, неверный адрес

error 013

no entry point (no public functions)

нет точки входа (не public функция)

error 014

invalid statement; not in switch

неверный оператор; не в switch

error 015

default case must be the last case in switch statement

default должен быть последним условием в switch

error 016

multiple defaults in "switch"

несколько "default" в switch

error 017

undefined symbol "%s"

неизвестный символ "%s"

error 018

initialization data exceeds declared size

данные массива превышают его размер

error 019

not a label: "%s"

не метка "%s"

error 020

invalid symbol name "%s"

неверное имя символа "%s"

error 021

symbol already defined: "%s"

символ уже объявлен: "%s"

error 022

must be lvalue (non-constant)

должно быть левосторонним (нет постоянной)

error 023

array assignment must be simple assignment

назначение массива должно быть простым

error 024

break or "continue" is out of context

break или "continue" вне контекста

error 025

function heading differs from prototype

функция заголовка отличается от прототипа

error 026

no matching "#if..."

не найдено "#if..."

error 027

invalid character constant

недопустимый символ в постоянной

error 028

invalid subscript (not an array or too many subscripts): "%s"

неверный индекс (это не массив или слишком много индексов): "%s"

error 029

invalid expression, assumed zero

неверное выражение, нет результата

error 030

compound statement not closed at the end of file

составной оператор не закрыт в конце файла

error 031

unknown directive

неизвестная директива

error 032

array index out of bounds (variable "%s")

индекс массива превышен

error 033

array must be indexed (variable "%s")

массив должен быть проиндексирован

error 034

argument does not have a default value (argument %d)

аргумент не имеет начального значения (аргумент %d)

error 035

argument type mismatch (argument %d)

несоответствие типа аргумента (аргумент %d)

error 036

empty statement

пустой оператор

error 037

invalid string (possibly non-terminated string)

неправильная строка

error 038

extra characters on line

лишние символы в строке

error 039

constant symbol has no size

символьная константа не имеет размера

error 040

duplicate "case" label (value %d)

несколько раз объявлен "case" с одним тем же параметром

error 041

invalid ellipsis, array size is not known

размер массива неизвестен

error 042

invalid combination of class specifiers

недопустимое сочетание класса

error 043

character constant exceeds range for packed string

символьная константа превышает размер строки

error 044

positional parameters must precede all named parameters

позиционные параметры должны предшествовать всем именованным параметрам

error 045

too many function arguments

слишком много аргументов у функции

error 046

unknown array size (variable "%s")

неизвестный размер массива

error 047

array sizes do not match, or destination array is too small

размеры массива конфликтуют, либо целевой массив слишком маленький

error 048

array dimensions do not match

размеры массива не совпадают

error 049

invalid line continuation

неправильное продолжение строки

error 050

invalid range

неверный диапазон

error 051

invalid subscript, use "[ ]" operators on major dimensions

неправильный индекс, используйте "[]"

error 052

multi-dimensional arrays must be fully initialized

много-размерные массивы должны быть полностью определены

error 053

exceeding maximum number of dimensions

превышение максимального числа измерений

error 054

unmatched closing brace

не найдена закрывающаяся скобка

error 055

start of function body without function header

начало функции без заголовка

error 056

arrays, local variables and function arguments cannot be public (variable "%s")

массивы, локальные переменные и аргументы функции не могут быть общедоступными (переменная «% s»)

error 057

unfinished expression before compiler directive

который недействителен.

error 058

duplicate argument; same argument is passed twice

дублирование аргумента; аргумент передается несколько раз

error 059

function argument may not have a default value (variable "%s")

аргумент не может иметь значение по-умолчанию

error 060

multiple "#else" directives between "#if ... #endif"

несколько "#else" между "#if и #endif"

error 061

#elseif directive follows an "#else" directive

#else перед "#elseif"

error 062

number of operands does not fit the operator

Количество операторов не соотвествует оператору

error 063

function result tag of operator "%s" must be "%s"

Результат функции %s должен быть %s

error 064

cannot change predefined operators

невозможно изменить уже определенные операторы

error 065

function argument may only have a single tag (argument %d)

в этой функции может быть только один аргумент

error 066

function argument may not be a reference argument or an array (argument "%s")

аргумент функции не может быть ссылкой или массивом

error 067

variable cannot be both a reference and an array (variable "%s")

Переменная не может быть как массив или ссылка

error 068

invalid rational number precision in #pragma

неверное число в #pragma

error 069

rational number format already defined

формат рационального числа уже определен

error 070

rational number support was not enabled

рациональное число не поддерживается

error 071

user-defined operator must be declared before use (function "%s")

объявленный оператор должен быть перед использованием

error 072

sizeof operator is invalid on "function" symbols

оператор "sizeof" не может быть использован для символов функции

error 073

function argument must be an array (argument "%s")

аргумент %s должен быть массивом

error 074

#define pattern must start with an alphabetic character

#define должен начинаться с буквы

error 075

input line too long (after substitutions)

введенная строка слишком длинная

error 076

syntax error in the expression, or invalid function call

неправильный синтаксис или неправильный вызов функции

error 077

malformed UTF-8 encoding, or corrupted file: %s

плохая кодировка UTF-8 или плохой файл: %s

error 078

\""}">function uses both "return" and "return <value>"

\""}">функция использует "return" и "return <значение>"

error 079

inconsistent return types (array & non-array)

несовместимость типов возвращенных результатов

error 080

unknown symbol, or not a constant symbol (symbol "%s")

неизвестный или непостоянный символ: %s

error 081

cannot take a tag as a default value for an indexed array parameter (symbol "%s")

Нельзя взять значение в массив %s

error 082

user-defined operators and native functions may not have states

созданные функции или операторы не имеют состояния

error 083

a function may only belong to a single automaton (symbol "%s")

функция может принадлежать только к одной автоматизации

error 084

state conflict: one of the states is already assigned to another implementation (symbol "%s")

для функции %s уже определенна данная state

error 085

no states are defined for function "%s"

нет состояний, определенных для функции "%s"

error 086

unknown automaton "%s"

неизвестная автоматизация "%s"

error 087

unknown state "%s" for automaton "%s"

неизвестное состояние "%s" в автоматизации "%s"

error 088

number of arguments does not match definitionn

количество аргументов не совпадает с объявленными в функции


fatal error 100

cannot read from file: "%s"

невозможно прочитать из файла "%s"

fatal error 101

cannot write to file: "%s"

невозможно записать в файл "%s"

fatal error 102

table overflow: "%s"
/* table can be: loop table
* literal table
* staging buffer
* option table (response file)
* peephole optimizer table
*/

переполнение таблицы: "% s"

fatal error 103

insufficient memory

недостаточно памяти

fatal error 104

invalid assembler instruction "%s"

неверная инструкция ассемблера "% s"

fatal error 105

numeric overflow, exceeding capacity

числовое переполнение, превышающее емкость

fatal error 106

compiled script exceeds the maximum memory size (%ld bytes)

скомпилированный скрипт превышает максимальный размер памяти (% ld bytes)

fatal error 107

too many error messages on one line

слишком много сообщений об ошибке в одной строке

fatal error 108

codepage mapping file not found

 

fatal error 109

invalid path: "%s"

неверный путь: "% s"

fatal error 110

assertion failed: %s

утверждение не выполнено:% s

fatal error 111

user error: %s

 

fatal error 112

specify either all dimensions or only the last dimension

 

warning 200

symbol "%s" is truncated to %d characters

название переменной "%s" обрезано до "%d" символа

warning 201

redefinition of constant/macro (symbol "%s")

переопределение константы / макроса

warning 202

number of arguments does not match definition

несовпадение количества аргументов

warning 203

symbol is never used: "%s"

переменная никогда не использовалась

warning 204

symbol is assigned a value that is never used: "%s"

переменной установлено значение, которое никогда не использовалось

warning 205

redundant code: constant expression is zero

избыточный код: константа равна нулю

warning 206

redundant test: constant expression is non-zero

избыточный тест: постоянное выражение не равно нулю

warning 207

unknown #pragma

неизвестно #pragma

warning 208

function with tag result used before definition, forcing reparse

функция с типовым результатом используется перед объявлением

warning 209

function "%s" should return a value

функция "%s" ничего не возвращает

warning 210

possible use of symbol before initialization: "%s"

возможное использование символа перед инициализацией: «% s»

warning 211

possibly unintended assignment

в условии использовано не сравнение, а присвоение

warning 212

possibly unintended bitwise operation

 

warning 213

tag mismatch

несоответствие аргументов

warning 214

possibly a "const" array argument was intended: "%s"

возможно «const» аргумент массива был предназначен: «% s»

warning 215

expression has no effect

выражение не имеет смысла

warning 216

nested comment

вложенный комментарий (вынесите его за функцию)

warning 217

loose indentation

не выровненная строка

warning 218

old style prototypes used with optional semicolumns

 

warning 219

local variable "%s" shadows a variable at a preceding level

локальная переменная "%s" встречается на предыдущем уровне

warning 220

expression with tag override must appear between parentheses

выражение с переопределением тега должно появляться между круглыми скобками

warning 221

label name "%s" shadows tag name

 

warning 222

number of digits exceeds rational number precision,

 

warning 223

redundant "sizeof": argument size is always 1 (symbol "%s")

избыточный «sizeof»: размер аргумента всегда равен 1 (переменная «% s»)

warning 224

indeterminate array size in "sizeof" expression (symbol "%s")

неопределенный размер массива в "sizeof" выражении (переменная "%s")

warning 225

unreachable code

невыполнимый код

warning 226

a variable is assigned to itself (symbol "%s")

переменная присваивается сама себе (переменная "%s")

warning 227

more initiallers than enum fields

в массиве больше элементов, чем указано в enum

warning 228

length of initialler exceeds size of the enum field

размер данных в массиве превышает размер поля типа enum

warning 229

index tag mismatch (symbol "%s")

несоответствие тега индекса

warning 230

no implementation for state "%s" / function "%s", no fall-back

в реализации state отсутствует состояние "%s" в функции "%s"

warning 231

state specification on forward declaration is ignored

 

warning 232

output file is written, but with compact encoding disabled

файл сохранен без сжатия

warning 233

symbol "%s" is marked as deprecated: %s

символ «% s» отмечен как устаревший:% s

warning 234

recursive function "%s"

рекурсивная функция "% s"


Разбор ошибок
Рассмотрим пример нахождения и самостоятельного решения ошибок при компиляции.
Допустим у нас есть ошибка:
Код:
C:\AMXX\example.sma(107) : error 035: argument type mismatch (argument 2)


Теперь давайте попытаемся разобрать эту ошибку по частям:
  1. C:\AMXX\example.sma - это директория, где находится исходник (.sma) нашего плагина.
  2. (107) - это номер строки, в которой есть ошибка. Большинство современных редакторов текста имеют панель с пронумерованными строками (Notepad++, AMXX-Studio и другие).
  3. error 035 - это код ошибки (список ошибок указан выше).
  4. argument type mismatch - это описание ошибки с кодом, указанным до этого. В данном случае нам говорится, что "аргумент имеет неверный тип".
  5. (argument 2) - это более подробное описание ошибки. В данном случае нам указывается, что ошибка во 2 аргументе.

Итого, получаем: в файле example.sma, который находится в директории C:\AMXX, в строке под номером 107 есть ошибка с кодом 035, которая означает, что аргумент 2 имеет неверный тип данных.

Решение ошибок
Теперь попытаемся исправить нашу ошибку. Идем в строку под номером 107 и видим следующий код:
Код:
client_print(0, "Welcome to the server!")


Идем на http://www.amxmodx.org/api/amxmodx/client_print и читаем описание функции:
Код:
native client_print(index, type, const message[], any:...);

index

Client index, use 0 to display to all clients

type

Message type, see print_* destination constants in
amxconst.inc

message

Formatting rules

...

Variable number of formatting parameters


Смотрим синтаксис команды client_print и видим, что первый аргумент index - это номер игрока (id), который может быть от 1 до 32, если же он 0, то сообщение будет отсылаться всем игрокам на сервере. Второй аргумент type - это тип сообщения, который может быть:
Код:
print_notify = 1,
print_console,
print_chat,
print_center,
print_radio /* Counter-Strike only */


Третий аргумент message - это и есть текст нашего сообщения. Теперь вернемся, к нашему, коду. Мы видим, что у нас нет второго аргумента (тип сообщения), а сразу идет текст сообщения, исправляем на:
Код:
client_print(0, print_center, "Welcome to the server!")

Теперь компиляция прошла успешно.


Описание ошибок:
error 001: expected token: "X", but found "Y"

Ошибка означает, что не найден X, когда найден Y. Наиболее часто возникает, когда забывают поставить недостающие знаки ; { } ( ).
Пример ошибки:
Код:
public Function(id)
{
if (is_user_bot(id)
return PLUGIN_HANDLED

// код

return PLUGIN_CONTINUE
}


error 017: undefined symbol "X"
Ошибка означает, что X - неизвестный символ/команда/переменная/функция. Поэтому такую функцию или переменную нужно объявить перед использованием. Например, функция is_user_hacker не существует.
Пример ошибки:
Код:
public Function(id)
{
if (is_user_hacker(id))
return PLUGIN_HANDLED

// код

return PLUGIN_CONTINUE
}


error 032: array index out of bounds (variable X)
Ошибка означает, что мы вышли за предел размера массива X.
Пример ошибки:
Код:
new s_Name[32]
s_Name[33] = "*"


error 033: array must be indexed (variable X)
Ошибка означает, что массив должен быть проиндексирован. Например, мы не указали размер массива при его объявлении.
Пример ошибки:
Код:
new s_String = "My string"


error 035: argument type mismatch (argument X)
Ошибка означает, что аргумент X имеет неверный тип данных. Например, когда вместо целочисленного аргумента передаем строку.
Пример ошибки:
Код:
public Function1(id)
{
Function2(id, "10")
}

public Function2(id, count)
{
// код
}


error 040: duplicate "case" label (value X)
Ошибка означает, что имеется дубль оператора case со значением X.
Пример ошибки:
Код:

public Function(id)
{
switch(count)
{
case 1: count += 1
case 2: count += 2
case 2: count += 3
}
}


error 075: input line too long (after substitutions)
Ошибка означает, что указанная строка слишком длинная. Например, около 500 символов.
Пример ошибки:
Код:

public Function(id)
{
server_print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
}


error 078: function uses both "return" and "return <value>"
Ошибка означает, что функция использует, как return, так и return <значение>.
Пример ошибки:
Код:

public Function(id)
{
if (is_user_alive(id))
return

return PLUGIN_HANDLED
}


error 088: number of arguments does not match definition
Ошибка означает, что количество переданных аргументов не соответствует количеству объявленных аргументов.
Пример ошибки:
Код:

public Function1(id)
{
Function2(id)
}

public Function2(id, count)
{
// код
}




Просьба сообщить о ошибках или недочетах.​
 
Сообщения
909
Рейтинг
612
#2
Если не будет у кого то компилиться будем сюда отправлять)
 
 
Сообщения
23
Рейтинг
18
#3
Можно даже сделать небольшой одностраничник с быстрым поиском и выдачей конкретного решения. Думаю, будет полезно)
 
1  
> > > >