A leggyakoribb - nbsp; Hiba kiadott - nbsp; gcc fordító - kis

Ez az oldal fordítás „CSM217: C Computer tudósok közös GCC hibák” staff.um.edu.mt/csta1//courses/lectures/csa2060.
(Ez nem kerülte el a lemezen)

A leggyakoribb hibák a fordító által generált gcc

Az alábbiakban egy listát a leggyakrabban előforduló hibák a fordítás során, és gcc fordító figyelmeztetések, valamint magyarázatot azok okait. Felhívjuk a figyelmet, hogy ez az anyag alkalmazható UNIX-szerű operációs rendszer.

Zárójelben a fordítás a rendszer üzeneteket.

hibalista

Leírása a gyakori hibákat / fordító figyelmeztetések

„Variable” be nem jelentett (első használat ez a funkció) [ „változó” határozzuk meg (az első használata ezt a funkciót)]

ismeretlen escape-szekvencia [ismeretlen szabályozó szekvencia]

Nincs ilyen fájl vagy könyvtár [Nincs ilyen fájl vagy könyvtár]

ld: elf error: file prog [ld: méret hiba elf: prog file]

értelmezési hiba előtt „húr” [értelmezési hiba előtt „string”]

Nem definiált szimbólum [Undefined szimbólum]

karakter konstans túl hosszú [túl hosszú karakter konstans]

elhaladó arg n „funkció” gyártmányú
adattípus más adattípus nélkül öntött [n továbbított érv funkciók „funkció” teremt
típusú adatokat egy másik adattípus nélkül működtető]

befejezetlen karakterlánc vagy karakter konstans [ágban vagy karakter konstans]

Elemzési hiba a bemenet végét [Elemzési hiba a bemenet végét]

Leírása a gyakori hibákat / fordító figyelmeztetések

A C fordítóprogram hibát általában kritikus, vagyis a C fordító nem tudja lefordítani a kódot. Ugyanakkor figyelmeztet - ez csak egy figyelmeztetés: a fordító azonosított potenciális problémát, de mégis képes volt létrehozni az objektumot kódot. A figyelmeztetések nem hagyható figyelmen kívül, általában azt jelenti, hogy valami baj van a programot, és valószínűleg ez fog viselkedni nem egészen úgy, ahogy elvárják.

Mielőtt a hibaüzenetek és figyelmeztetések jelennek meg a fájl nevét és funkcióját, amelyben a hiba történt. Például,

prog.c: A funkció „fő”:


[Prog.c: A 'fő' funkció:]

Ez azt jelenti, hogy hiba történt a szoftver összeállítása prog.c fájlt, vagy inkább a fő funkciója. Az alábbi sorokat jeleníti meg a hibákat / figyelmeztetések a fájl adatait és funkcióit. Ha a kód számos funkciót és / vagy több fájl, minden fájl / függvény, amely hibák elkülönítetten kell kimutatni.

String hibáját / figyelmeztető üzenetek, amelyek követik a fájl nevét / funkciók közé tartozik:



  • fájlnév / funkció, amely a hibát;
  • A sorszám a forrás fájlban, ha hiba történt;
  • line "figyelmeztetés" [ "figyelmeztetés"]. ha az üzenet figyelmeztetés (hiba esetén, ez a sor üres);
  • A hiba leírása találkozott.


prog.c: 3: figyelmeztetés: ismeretlen escape szekvencia '\ z'

[Prog.c: 3: Figyelmeztetés: ismeretlen szabályozó szekvencia '\ z']

Ez azt jelenti, hogy probléma van a 3. sorban prog.c. fájl Ez az üzenet - csak egy figyelmeztetés: nincs menekvés sorrendben „\ z”. A programot összeállítani (kivéve, ha vannak más hibák), mivel ez csak egy figyelmeztetés. Azonban valószínűleg a program úgy viselkedik, nem egészen úgy, ahogy elvárják.

„Variable” be nem jelentett (első használat ez a funkció) [ „változó” határozzuk meg (az első használata ezt a funkciót)]

C - gépelt nyelv, amely megköveteli, hogy állapítsa meg változókat használat előtt. Xi is a kis- és nagybetűk nyelv, azaz a var és Var - különböző változók. Vagy elfelejtette, hogy egy változót, vagy egy hiba a helyesírás a nevét.


Ez a hiba - a fordító nem tudja lefordítani kódot. Általában ez az üzenet kíséri szöveg (Mindegyik bejelentett azonosító tűnik csak egyszer minden funkció megjelenik.) [(Csak egy üzenet jelenik meg a funkció azonosítót minden előzetes bejelentés nélkül.)].
Ugyanez nem inicializált változók többször is előfordulhat egy funkció, de a fordító jelentések csak az első eset.

ismeretlen escape szekvencia „\ z” [ismeretlen szabályozó szekvencia]

Szabályozó szekvencia - ez egy szimbólum, amely előtt egy backslash „\”. A jelenléte „\” funkció megváltoztatja a következő karaktert. Például, 'n' - jelképe n, de a '\ n' - annak a jele, az új sor. Néhány karakter, például Z, nincs menekülés szekvenciák. A programot összeállítani (kivéve, ha vannak más hibák), mivel ez csak egy figyelmeztetés. Azonban valószínűleg a program úgy viselkedik, nem egészen úgy, ahogy elvárják.

Nincs ilyen fájl vagy könyvtár [Nincs ilyen fájl vagy könyvtár]

Azt a parancsot adta, hogy összeállít egy fájl nem létezik. Várható, hogy a fájlokat a C forráskód program kiterjesztése .c. Ha a forráskód a proc.c fájlt, használja a fordítási parancs gcc prog.c. Kísérlet, hogy végre gcc prog vezet ez a hiba. Ez a hiba általában üzenet kíséri Nincs bemeneti fájl [Nincs bemeneti fájl].

ld: elf error: file prog [ld: méret hiba elf: prog file]

Jellemzően akkor is megjelenik a következő üzenet.

ismeretlen típusú, nem tudta feldolgozni a manó (3E) könyvtárak

ld: végzetes: Fájlok feldolgozási hibák. Nincs kimenet írt a.out

collect2: ld iránt 1 exit status


[Ismeretlen típus nem lehet feldolgozni a könyvtárat használó elf (3E)

ld: Kritikus: Fájlok feldolgozási hibák. A fájl nem írt semmit a.out

collect2: ld iránt 1 exit status]

Csúnya hibát; Szerencsére ez könnyen fix! A kód egy C program prog fájlban, de mivel nem használja a .c kiterjesztés a fájl gcc nem tudja kitalálni, hogy milyen típusú programkód tartalmaz a megadott fájlt. Hibajavítás egyszerűen átnevezni prog a prog.c.

értelmezési hiba előtt „húr” [értelmezési hiba előtt „string”]

Nem definiált szimbólum [Undefined szimbólum]

Gcc találkozott olyasmi, mint egy függvényhívás, de a funkciója ugyanaz a neve nem létezik. A név a „hiányzó” funkció - az első szó a harmadik sorban a hibaüzenetet (fő).

Minden C programok kell, hogy legyen egy fő funkciója, mert kezd vele a program végrehajtását.

karakter konstans túl hosszú [túl hosszú karakter konstans]

C-ben a húr kell idézőjelek ( „”). Ha az aposztróf jelet ( '), várható, hogy lesznek csak egy karaktert (vagy egy kontroll szekvencia).

figyelmeztetés: halad arg n „funkció” gyártmányú
pointer értéke nélkül öntött [n továbbított argumentum funkciók „funkció” létrehoz egy indexet a teljes nélkül működtető]


Megadjuk függvényt. Várható, hogy a n paraméter egy mutató, de át a funkciót egész szám (int). Módosíthatja az értéket használja a leadott, de te nem. C - a típusos nyelv, ami szükséges, hogy állapítsa meg a változók típusát és adattípusok át a funkciót, mielőtt használja őket. Ez a figyelmeztető hang, ha teljesülnek típus hibás adatok között átadott a funkció és a várt adat funkció (típus továbbított
megadott paraméterek függvényében prototípus). Annak ellenére, hogy a gcc létrehoz egy tárgykód, ezt a figyelmeztetést kell figyelni, mert általában azt jelzi, logikai hiba.

befejezetlen karakterlánc vagy karakter konstans [ágban vagy karakter konstans]

Nem egyezik a száma nyitó és záró idézőjel (szimpla vagy dupla).

Elemzési hiba a bemenet végét [Elemzési hiba a bemenet végét]

Lehet, hogy elvesztette a záró kapcsos zárójel (>), valahol a kódot. Xi nem lehet azt mondani, hogy pontosan hol, így a jó szerencsét a keresés!

Kapcsolódó cikkek