Тази страница превод "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 не мога да кажа точно къде, така че успех в търсенето!
Свързани статии