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

Сообщения
1,536
Реакции
2,319
Помог
39 раз(а)
Автор: minimiller
Перевод и редактирование: DJ_WEST
Источники: amx-x
Добавлено: Весь список ошибок и предупреждений, перевод части id

error 001expected token: "%s", but found "%s"ожидался символ: "%s", но был найден "%s"
error 002only a single statement (or expression) can follow each "case"только одно заявление (или выражение) могут следовать за "case"
error 003declaration of a local variable must appear in a compound blockобъявленная локальная переменная должна использоваться в этом же блоке
error 004function "%s" is not implementedфункция %s не реализована
error 005function may not have argumentsфункция не имеет аргументов
error 006must be assigned to an arrayдолжен быть присвоен массив
error 007operator cannot be redefinedоператор не может быть установлен еще раз
error 008must be a constant expression; assumed zeroдолжно быть постоянным выражением; равным нулю
error 009invalid array size (negative or zero)неверный размер массива (отрицательный или 0)
error 010invalid function or declarationнеизвестная функция или декларация
error 011invalid outside functionsневерно вне функции
error 012invalid function call, not a valid addressневерный вызов функции, неверный адрес
error 013no entry point (no public functions)нет точки входа (не public функция)
error 014invalid statement; not in switchневерный оператор; не в switch
error 015default case must be the last case in switch statementdefault должен быть последним условием в switch
error 016multiple defaults in "switch"несколько "default" в switch
error 017undefined symbol "%s"неизвестный символ "%s"
error 018initialization data exceeds declared sizeданные массива превышают его размер
error 019not a label: "%s"не метка "%s"
error 020invalid symbol name "%s"неверное имя символа "%s"
error 021symbol already defined: "%s"символ уже объявлен: "%s"
error 022must be lvalue (non-constant)должно быть левосторонним (нет постоянной)
error 023array assignment must be simple assignmentназначение массива должно быть простым
error 024break or "continue" is out of contextbreak или "continue" вне контекста
error 025function heading differs from prototypeфункция заголовка отличается от прототипа
error 026no matching "#if..."не найдено "#if..."
error 027invalid character constantнедопустимый символ в постоянной
error 028invalid subscript (not an array or too many subscripts): "%s"неверный индекс (это не массив или слишком много индексов): "%s"
error 029invalid expression, assumed zeroневерное выражение, нет результата
error 030compound statement not closed at the end of fileсоставной оператор не закрыт в конце файла
error 031unknown directiveнеизвестная директива
error 032array index out of bounds (variable "%s")индекс массива превышен
error 033array must be indexed (variable "%s")массив должен быть проиндексирован
error 034argument does not have a default value (argument %d)аргумент не имеет начального значения (аргумент %d)
error 035argument type mismatch (argument %d)несоответствие типа аргумента (аргумент %d)
error 036empty statementпустой оператор
error 037invalid string (possibly non-terminated string)неправильная строка
error 038extra characters on lineлишние символы в строке
error 039constant symbol has no sizeсимвольная константа не имеет размера
error 040duplicate "case" label (value %d)несколько раз объявлен "case" с одним тем же параметром
error 041invalid ellipsis, array size is not knownразмер массива неизвестен
error 042invalid combination of class specifiersнедопустимое сочетание класса
error 043character constant exceeds range for packed stringсимвольная константа превышает размер строки
error 044positional parameters must precede all named parametersпозиционные параметры должны предшествовать всем именованным параметрам
error 045too many function argumentsслишком много аргументов у функции
error 046unknown array size (variable "%s")неизвестный размер массива
error 047array sizes do not match, or destination array is too smallразмеры массива конфликтуют, либо целевой массив слишком маленький
error 048array dimensions do not matchразмеры массива не совпадают
error 049invalid line continuationнеправильное продолжение строки
error 050invalid rangeневерный диапазон
error 051invalid subscript, use "[ ]" operators on major dimensionsнеправильный индекс, используйте "[]"
error 052multi-dimensional arrays must be fully initializedмного-размерные массивы должны быть полностью определены
error 053exceeding maximum number of dimensionsпревышение максимального числа измерений
error 054unmatched closing braceне найдена закрывающаяся скобка
error 055start of function body without function headerначало функции без заголовка
error 056arrays, local variables and function arguments cannot be public (variable "%s")массивы, локальные переменные и аргументы функции не могут быть общедоступными (переменная «% s»)
error 057unfinished expression before compiler directiveкоторый недействителен.
error 058duplicate argument; same argument is passed twiceдублирование аргумента; аргумент передается несколько раз
error 059function argument may not have a default value (variable "%s")аргумент не может иметь значение по-умолчанию
error 060multiple "#else" directives between "#if ... #endif"несколько "#else" между "#if и #endif"
error 061#elseif directive follows an "#else" directive#else перед "#elseif"
error 062number of operands does not fit the operatorКоличество операторов не соотвествует оператору
error 063function result tag of operator "%s" must be "%s"Результат функции %s должен быть %s
error 064cannot change predefined operatorsневозможно изменить уже определенные операторы
error 065function argument may only have a single tag (argument %d)в этой функции может быть только один аргумент
error 066function argument may not be a reference argument or an array (argument "%s")аргумент функции не может быть ссылкой или массивом
error 067variable cannot be both a reference and an array (variable "%s")Переменная не может быть как массив или ссылка
error 068invalid rational number precision in #pragmaневерное число в #pragma
error 069rational number format already definedформат рационального числа уже определен
error 070rational number support was not enabledрациональное число не поддерживается
error 071user-defined operator must be declared before use (function "%s")объявленный оператор должен быть перед использованием
error 072sizeof operator is invalid on "function" symbolsоператор "sizeof" не может быть использован для символов функции
error 073function argument must be an array (argument "%s")аргумент %s должен быть массивом
error 074#define pattern must start with an alphabetic character#define должен начинаться с буквы
error 075input line too long (after substitutions)введенная строка слишком длинная
error 076syntax error in the expression, or invalid function callнеправильный синтаксис или неправильный вызов функции
error 077malformed UTF-8 encoding, or corrupted file: %sплохая кодировка UTF-8 или плохой файл: %s
error 078\""}">function uses both "return" and "return <value>"\""}">функция использует "return" и "return <значение>"
error 079inconsistent return types (array & non-array)несовместимость типов возвращенных результатов
error 080unknown symbol, or not a constant symbol (symbol "%s")неизвестный или непостоянный символ: %s
error 081cannot take a tag as a default value for an indexed array parameter (symbol "%s")Нельзя взять значение в массив %s
error 082user-defined operators and native functions may not have statesсозданные функции или операторы не имеют состояния
error 083a function may only belong to a single automaton (symbol "%s")функция может принадлежать только к одной автоматизации
error 084state conflict: one of the states is already assigned to another implementation (symbol "%s")для функции %s уже определенна данная state
error 085no states are defined for function "%s"нет состояний, определенных для функции "%s"
error 086unknown automaton "%s"неизвестная автоматизация "%s"
error 087unknown state "%s" for automaton "%s"неизвестное состояние "%s" в автоматизации "%s"
error 088number of arguments does not match definitionnколичество аргументов не совпадает с объявленными в функции
[TBODY] [/TBODY]

fatal error 100cannot read from file: "%s"невозможно прочитать из файла "%s"
fatal error 101cannot write to file: "%s"невозможно записать в файл "%s"
fatal error 102table overflow: "%s"
/* table can be: loop table
* literal table
* staging buffer
* option table (response file)
* peephole optimizer table
*/
переполнение таблицы: "% s"
fatal error 103insufficient memoryнедостаточно памяти
fatal error 104invalid assembler instruction "%s"неверная инструкция ассемблера "% s"
fatal error 105numeric overflow, exceeding capacityчисловое переполнение, превышающее емкость
fatal error 106compiled script exceeds the maximum memory size (%ld bytes)скомпилированный скрипт превышает максимальный размер памяти (% ld bytes)
fatal error 107too many error messages on one lineслишком много сообщений об ошибке в одной строке
fatal error 108codepage mapping file not found
fatal error 109invalid path: "%s"неверный путь: "% s"
fatal error 110assertion failed: %sутверждение не выполнено:% s
fatal error 111user error: %s
fatal error 112specify either all dimensions or only the last dimension
[TBODY] [/TBODY]

warning 200symbol "%s" is truncated to %d charactersназвание переменной "%s" обрезано до "%d" символа
warning 201redefinition of constant/macro (symbol "%s")переопределение константы / макроса
warning 202number of arguments does not match definitionнесовпадение количества аргументов
warning 203symbol is never used: "%s"переменная никогда не использовалась
warning 204symbol is assigned a value that is never used: "%s"переменной установлено значение, которое никогда не использовалось
warning 205redundant code: constant expression is zeroизбыточный код: константа равна нулю
warning 206redundant test: constant expression is non-zeroизбыточный тест: постоянное выражение не равно нулю
warning 207unknown #pragmaнеизвестно #pragma
warning 208function with tag result used before definition, forcing reparseфункция с типовым результатом используется перед объявлением
warning 209function "%s" should return a valueфункция "%s" ничего не возвращает
warning 210possible use of symbol before initialization: "%s"возможное использование символа перед инициализацией: «% s»
warning 211possibly unintended assignmentв условии использовано не сравнение, а присвоение
warning 212possibly unintended bitwise operation
warning 213tag mismatchнесоответствие аргументов
warning 214possibly a "const" array argument was intended: "%s"возможно «const» аргумент массива был предназначен: «% s»
warning 215expression has no effectвыражение не имеет смысла
warning 216nested commentвложенный комментарий (вынесите его за функцию)
warning 217loose indentationне выровненная строка
warning 218old style prototypes used with optional semicolumns
warning 219local variable "%s" shadows a variable at a preceding levelлокальная переменная "%s" встречается на предыдущем уровне
warning 220expression with tag override must appear between parenthesesвыражение с переопределением тега должно появляться между круглыми скобками
warning 221label name "%s" shadows tag name
warning 222number of digits exceeds rational number precision,
warning 223redundant "sizeof": argument size is always 1 (symbol "%s")избыточный «sizeof»: размер аргумента всегда равен 1 (переменная «% s»)
warning 224indeterminate array size in "sizeof" expression (symbol "%s")неопределенный размер массива в "sizeof" выражении (переменная "%s")
warning 225unreachable codeневыполнимый код
warning 226a variable is assigned to itself (symbol "%s")переменная присваивается сама себе (переменная "%s")
warning 227more initiallers than enum fieldsв массиве больше элементов, чем указано в enum
warning 228length of initialler exceeds size of the enum fieldразмер данных в массиве превышает размер поля типа enum
warning 229index tag mismatch (symbol "%s")несоответствие тега индекса
warning 230no implementation for state "%s" / function "%s", no fall-backв реализации state отсутствует состояние "%s" в функции "%s"
warning 231state specification on forward declaration is ignored
warning 232output file is written, but with compact encoding disabledфайл сохранен без сжатия
warning 233symbol "%s" is marked as deprecated: %sсимвол «% s» отмечен как устаревший:% s
warning 234recursive function "%s"рекурсивная функция "% s"
[TBODY] [/TBODY]

Разбор ошибок
Рассмотрим пример нахождения и самостоятельного решения ошибок при компиляции.
Допустим у нас есть ошибка:
Код:
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:...);

indexClient index, use 0 to display to all clients
typeMessage type, see print_* destination constants in
amxconst.inc
messageFormatting rules
...Variable number of formatting parameters
[TBODY] [/TBODY]
Смотрим синтаксис команды 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)
{
// код
}




Просьба сообщить о ошибках или недочетах.​
 
Сообщения
2,288
Реакции
1,737
Помог
31 раз(а)
Если не будет у кого то компилиться будем сюда отправлять)
 
Сообщения
28
Реакции
24
Можно даже сделать небольшой одностраничник с быстрым поиском и выдачей конкретного решения. Думаю, будет полезно)
 
Сообщения
18
Реакции
0
@Алексеич,и всё :D Даже код ошибки компилятор не выдал) Переустановил на другой сейчас все океюшки :)
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу