ПредишенСледващото

Тази страница превод "CSM217: С за компютърни специалисти Общата ССЗ Compiler грешки" staff.um.edu.mt/csta1//courses/lectures/csa2060.
(Това не е загубен на диска)

Най-често срещаните грешки, генерирани от ССЗ съставител

По-долу следва списък на най-често срещаните грешки по време на компилация и GCC компилатор предупреждения, както и обяснение на причините за тях. Моля, обърнете внимание, че този материал е приложим за UNIX-подобни операционни системи.

В скоби е превод на съобщенията на системата.

списък грешка

Описание на общи грешки / предупреждения компилатор

"Променливата" декларирани (първата употреба в тази функция) [ "променлив" се определя (в първото използване на тази функция)]

неизвестен бягство последователност [неизвестен контролна последователност]

Няма такъв файл или директория [Няма такъв файл или директория]

LD: елф грешка: файл прог: [LD: формат грешка елф: прог файл]

разбор грешка преди "низ" [разбор грешка преди "низ"]

Неопределен символ [неопределен символ]

символна константа твърде дълго [твърде дълго символна константа]

преминаване арг н на "функцията" марки
тип данни от друг тип данни, без гласове [п предавани функции на повече "функция" създава
тип на данни от друг тип данни без задействане]

Незавършен низ или символна константа [мъниче линия или символна константа]

разбор грешки в края на входа [разбор грешки в края на входа]

Описание на общи грешки / предупреждения компилатор

В C, грешки компилатора обикновено са критични, а именно, компилатор не може да компилира кода си. В същото време за предупреждение - това е само предупреждение: компилаторът идентифицира потенциален проблем, но все пак успя да създаде обектен код. Предупрежденията не трябва да се пренебрегват, те обикновено означава, че нещо не е наред с програмата си и най-вероятно ще се държи не е точно така, както се очаква.

Преди съобщенията за грешки и предупрежденията се показват в имената на файловете и функция, в който е възникнала грешката. Например,

prog.c: В функция "основният":


[Prog.c: В "основна" функция:]

Това означава, че е възникнала грешка по време на компилация софтуер prog.c файл, или по-скоро, в чиято основна функция. В следващите редове показва грешки / предупреждения за данни на файла и функции. Ако номерът на кода на функциите и / или множество файлове, като всеки файл / функция, съдържаща грешки ще бъдат показани отделно.

String грешка / предупредителни съобщения, които следват името на файла / функции включват:



  • име на файла / функция, съдържаща грешката;
  • номера на реда в изходния файл, където е възникнала грешка;
  • линия "предупреждение" [ "предупреждение"]. ако съобщението е предупреждение (в случай на грешка, тази линия е празно);
  • описание на грешката срещнали.


prog.c: 3: предупреждение: неизвестен бягство последователност '\ Z "

[Prog.c: 3: Внимание: неизвестна контролна последователност "\ Z ']

Това означава, че има проблем по линия 3 prog.c. файл Това съобщение - само предупреждение: не е бягство последователност '\ Z ". Програмата ще бъде съставен (освен ако няма други грешки), тъй като това е само предупреждение. Въпреки това, най-вероятно, програмата не се държи доста по очаквания начин.

"Променливата" декларирани (първата употреба в тази функция) [ "променлив" се определя (в първото използване на тази функция)]

C - е написан на език, което е, се изисква да си декларират променливи, преди да ги използвате. Xi също главни и малки букви език, т.е. Var и Var - различни променливи. Или е забравил да декларира променлива, или грешка в изписването на името й.


Тази грешка - компилаторът не може да компилира код. Обикновено това съобщение е придружено от текст (всеки недеклариран идентификатор се отчитат само веднъж за всяка функция е записано в.) [(Само едно съобщение се показва на идентификатора на функция за всеки необявен.)].
Същите неинициализирани променливи може да се случи на няколко пъти във функция, но компилаторът съобщава само първия случай.

неизвестен бягство последователност "\ Z '[неизвестен контролна последователност]

Контролна последователност - това е символ, пред която е наклонена черта "\". Наличието на функция '\' променя следващия знак. Например, "N" - символ на п, но '\ N' - е знак за нов ред. За някои символи, например, Z, няма аварийни последователности. Програмата ще бъде съставен (освен ако няма други грешки), тъй като това е само предупреждение. Въпреки това, най-вероятно, програмата не се държи доста по очаквания начин.

Няма такъв файл или директория [Няма такъв файл или директория]

Ти даде команда, за да съставят досие, което не съществува. Очаква се, че досиетата на C изходния код на програмата ще имат .c разширение. Ако изходният код е в proc.c файл, използвайте командата компилация ССЗ prog.c. на Направен е опит да се изпълни ССЗ прог доведе до тази грешка. Тази грешка обикновено е съпроводено от съобщението Не входни файлове [Без входни файлове].

LD: елф грешка: файл прог: [LD: формат грешка елф: прог файл]

Обикновено, вие също така ще видите следното съобщение.

неизвестен тип, не можа да обработи използване ELF (3д) библиотеки

LD: грешки обработка на файловете: фатално. Няма изходен писмено да a.out

collect2: LD върна един изходен код


[Файл тип не могат да бъдат обработени с използване елфа на библиотеката (3E)

LD: грешки обработка на файловете: Критична. Файлът не е написал нищо a.out

collect2: LD върна един изходен код]

Nasty бъг; За щастие, това е лесно да се определи! Вашият код е C програма прог във файл, а, но тъй като не сте използвали разширение .c за файла, ССЗ не мога да разбера какъв тип програмен код се съдържа в даден файл. За да коригирате грешка, просто преименувате прог в prog.c.

разбор грешка преди "низ" [разбор грешка преди "низ"]

Неопределен символ [неопределен символ]

GCC срещна нещо като извикване на функция, но функцията на едно и също име не съществува. Името на "липсващите" функции - първата дума в третия ред на съобщението за грешка (основна).

Всички програми C трябва да бъдат основна функция, тъй като тя започва с нейната екзекуция на програмата.

символна константа твърде дълго [твърде дълго символна константа]

В C, низ трябва да бъде затворен в двойни кавички ( ""). Ако използвате единични кавички ( ""), се очаква, че те ще бъдат само един знак (или поредица контрол).

предупреждение: преминаване арг н на "функцията" марки
указател от цяло число без гласове [п предава "функция" аргумент функции създава индекс на целия без задействане]


Наричаш функция функция. Очаква се, че аргумент н е указател, но преминава към цяло число, функцията (инт). За да промените стойностите използват гласове, но не го правят. C - е написан на език, който е длъжен да декларира вида на променливи и типове данни се подават на функцията, преди да ги използвате. Това предупреждение изход, ако се срещна тип несъответствие между данните се подават на функцията и данните очаква функция (тип предава
параметрите, определени в прототипа на функция). Въпреки факта, че ССЗ създава код обект, това предупреждение трябва да се обърне внимание, защото това обикновено показва грешка логика.

Незавършен низ или символна константа [мъниче линия или символна константа]

Не съответства на броя на отваряне и затваряне кавички (единична или двойна).

разбор грешки в края на входа [разбор грешки в края на входа]

Вие може да сте загубили затварящата фигурна скоба (>), някъде в кода. Xi не мога да кажа точно къде, така че успех в търсенето!

Свързани статии

Подкрепете проекта - споделете линка, благодаря!