Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Prikaz gcc  (Přečteno 4686 krát)

Vikinger

  • Návštěvník
  • Příspěvků: 19
Prikaz gcc
« kdy: 23 Října 2010, 19:57:36 »
Nazdarte
Obraciam sa Vás zase.

V skole sa učime kompilovať prikazom gcc

Mam ubuntu 10.10

skompilujem jeden subor s prikazom :
gcc sync.c

následne my vyhodí 1 chybu. (Error), tj. opravím tu jednu chybu a zase mi vypise dalsiu chybu, je ich viacej

Kamošom čo sú na školskom serveri vyhodí veľa chýb cca 20 Errorov
aký by bol príkaz aby mi vypisalo cely zoznam chýb??

hadam tento jeden prikaz mi už pomôžete a nebudete odbáčať od temy !!
« Poslední změna: 23 Října 2010, 20:42:35 od Vikinger »

premet

  • Host
Re: Prikaz gcc
« Odpověď #1 kdy: 23 Října 2010, 20:08:09 »
Tak pokud ti kompilátor vyhodí chybu, tak to není chyba v něm, ale máš chybu v programu :).
Můžeš sem hodit chyby co ti to hlásí popřípadě kód ?

A jestli chceš odhalit co nejvíc chyb tak nejpřísnější kompilace je asi
Kód: [Vybrat]
gcc -Wall -pedantic -o foo foo.c

Vikinger

  • Návštěvník
  • Příspěvků: 19
Re: Prikaz gcc
« Odpověď #2 kdy: 23 Října 2010, 20:42:20 »
V prvom rade našou ulohou je aby sme mali vypísané tie chyby, tj je ich okolo 20-30.

A následne z výpisu ich mame opravovať.
Takze len prikaz by som potreboval na vypisanie kompletných chýb.
V skole sme dali len gcc sync.c a hned vypisalo všetky, a mne to nejde na ubutnu :((

cez wall som skusal tiez nešlo .... ako to je mozné??

Kód: [Vybrat]
jozef@Jozkoo:~/skola/AP/balicek4$ gcc sync.c
sync.c:19: error: #include expects "FILENAME" or <FILENAME>
In file included from sync.c:24:
system.h:43: fatal error: pathmax.h: No such file or directory
compilation terminated.
jozef@Jozkoo:~/skola/AP/balicek4$

premet

  • Host
Re: Prikaz gcc
« Odpověď #3 kdy: 23 Října 2010, 21:01:42 »
Podle výpisu se ti to ani nezkompiluje celý, protože:
1) Máš špatně inkludovaný soubor
2) U hlavičkovýho souboru system.h ti to hlásí, že mu chybí hlavičkovej soubor, kterej on potřebuje.

Jelikož máš ve škole potřebný knihovny nainstalovaný, tak proto ti ta kompilace proběhne celá  :)
« Poslední změna: 23 Října 2010, 21:06:31 od Premet »

Kedrigern

Re: Prikaz gcc
« Odpověď #4 kdy: 23 Října 2010, 21:08:49 »
Možná tomu špatně rozumím, ale gcc vyhazuje chybu, když jí najde a nejede dál (nemá jak!), proto jich nelze vypsat více.

Více lze vypsat warningů, což je popsáno v příspěvku nademnou.

Je možné, že jsou jiné kompilátory, které sice najdou chybu, ale "myslí si, že ví jak to opravit" a překládají dále, pak mohou vypsat více chyb.

Jinak si přečti tento seriál:

(koukám, že mají na linuxsoftu špatně kategorie)

Vikinger

  • Návštěvník
  • Příspěvků: 19
Re: Prikaz gcc
« Odpověď #5 kdy: 23 Října 2010, 21:10:59 »
Podle výpisu se ti to ani nezkompiluje celý, protože:
1) Máš špatně inkludovaný soubor
2) U hlavičkovýho souboru system.h ti to hlásí, že mu chybí hlavičkovej soubor, kterej on potřebuje.


Viem našou ulohou je tie chyby opraviť, uz som to opravil a vypisuje ďaľšie ale vzdy po 2 chybých, ja by som potreboval prikaz aby vypisalo všetky chyby tj zoznam a nie 2 chyby

Vikinger

  • Návštěvník
  • Příspěvků: 19
Re: Prikaz gcc
« Odpověď #6 kdy: 23 Října 2010, 21:15:13 »
Možná tomu špatně rozumím, ale gcc vyhazuje chybu, když jí najde a nejede dál (nemá jak!), proto jich nelze vypsat více.

Více lze vypsat warningů, což je popsáno v příspěvku nademnou.

Je možné, že jsou jiné kompilátory, které sice najdou chybu, ale "myslí si, že ví jak to opravit" a překládají dále, pak mohou vypsat více chyb.

Jinak si přečti tento seriál:

(koukám, že mají na linuxsoftu špatně kategorie)

ale v škole, v putty sme sa napojili na linuxovy server, neviem aku distribuciu tam majú ale tam ked som dal ten isty prikaz gcc sync.c do toho isteho suboru tak vypisalo viacero chýb, napíšte mi presny prikaz prosim vas aj stým c-čkovským suborom sync.c

premet

  • Host
Re: Prikaz gcc
« Odpověď #7 kdy: 23 Října 2010, 21:20:49 »
Ale vždyt ti to říkám, když nebudeš mít potřebný knihovny tak se dál nedostaneš, a jelikož je ve škole máš tak proto to jede dál  8)
Můžeš si je vyhledet tady http://packages.ubuntu.com/ a hledat podle obsahu balíčku.
« Poslední změna: 23 Října 2010, 21:22:32 od Premet »

Vikinger

  • Návštěvník
  • Příspěvků: 19
Re: Prikaz gcc
« Odpověď #8 kdy: 23 Října 2010, 21:22:17 »
Ale vždyt ti to říkám, když nebudeš mít potřebný knihovny tak se dál nedostaneš, a jelikož je ve škole máš tak proto to jede dál  8)

ani v škole ich nemame
Našou ulohou je zobrazit chybi prikazom gcc a potom následne ich opravu, tj nakopírovanie do tej zlozke kde mame ten c-čkovsky subor, hehe ale hadam uz ma pomali pochopíš

tak ten príkaz mi vieš povedať aby vypisalo všetky erory a nie len po 2 ??

premet

  • Host
Re: Prikaz gcc
« Odpověď #9 kdy: 23 Října 2010, 21:25:48 »
Když nebudete mít ve škole potřebný knihovny, nikdy ten program nezkompiluješ bez chyb, takže to akorát nechápeš ty. Kompilace ti skončí, protože nemůže jet dál kvůli potřebné knihovně, tudíž ti to nezobrazí další chyby, který se nacházejí dál v kódu, protože skončí předčasně.

Vikinger

  • Návštěvník
  • Příspěvků: 19
Re: Prikaz gcc
« Odpověď #10 kdy: 23 Října 2010, 21:33:55 »
Když nebudete mít ve škole potřebný knihovny, nikdy ten program nezkompiluješ bez chyb, takže to akorát nechápeš ty. Kompilace ti skončí, protože nemůže jet dál kvůli potřebné knihovně, tudíž ti to nezobrazí další chyby, který se nacházejí dál v kódu, protože skončí předčasně.

Ale ja nechcem aby mi to prebehlo bezproblemov ta kompilácia
Chcem len aby som mal všetky chyby vypísané .... nie dve ale všetky !

premet

  • Host
Re: Prikaz gcc
« Odpověď #11 kdy: 23 Října 2010, 21:40:49 »
Víš co, čti si tohle téma od začátku do konce, dokud to nepochopíš  ;)

Vikinger

  • Návštěvník
  • Příspěvků: 19
Re: Prikaz gcc
« Odpověď #12 kdy: 23 Října 2010, 21:48:16 »
a ako spravne mam napisať ten prikaz aby mi šiel? lebo teraz mi nejde ...

premet

  • Host
Re: Prikaz gcc
« Odpověď #13 kdy: 23 Října 2010, 21:48:55 »
Jakej ?

Kedrigern

Re: Prikaz gcc
« Odpověď #14 kdy: 23 Října 2010, 21:49:59 »
a ako spravne mam napisať ten prikaz aby mi šiel? lebo teraz mi nejde ...
Jsem ti to napsal. GCC přes chybu nemůže jet! Nemá jak. Neví, co by měl lifrovat do asembleru. Čili pokud narazí na chybu, tak skončí a vypíše chybu. Nemůže jich vypsat víc, protože o dalších neví.

Vypsat více můžeš jenom warningů.

Popřípadě dlouhý popis chyby.

Vikinger

  • Návštěvník
  • Příspěvků: 19
Re: Prikaz gcc
« Odpověď #15 kdy: 23 Října 2010, 21:51:28 »
a ako spravne mam napisať ten prikaz aby mi šiel? lebo teraz mi nejde ...
Jsem ti to napsal. GCC přes chybu nemůže jet! Nemá jak. Neví, co by měl lifrovat do asembleru. Čili pokud narazí na chybu, tak skončí a vypíše chybu. Nemůže jich vypsat víc, protože o dalších neví.

Vypsat více můžeš jenom warningů.

Popřípadě dlouhý popis chyby.

diki moc za vysvetlenie, jeden poriadny čo to vie rozpísať.
A na warningy je aký prikaz?? napisal by si mi to ? ale presne na ten subor čo mam ja sync.c    dakujem

Kedrigern

Re: Prikaz gcc
« Odpověď #16 kdy: 23 Října 2010, 22:27:18 »
a ako spravne mam napisať ten prikaz aby mi šiel? lebo teraz mi nejde ...
Jsem ti to napsal. GCC přes chybu nemůže jet! Nemá jak. Neví, co by měl lifrovat do asembleru. Čili pokud narazí na chybu, tak skončí a vypíše chybu. Nemůže jich vypsat víc, protože o dalších neví.

Vypsat více můžeš jenom warningů.

Popřípadě dlouhý popis chyby.

diki moc za vysvetlenie, jeden poriadny čo to vie rozpísať.
A na warningy je aký prikaz?? napisal by si mi to ? ale presne na ten subor čo mam ja sync.c    dakujem

gcc parametry (mohou být v téměř libovolném pořadí:
-o <jméno> zkratka za output, jméno výsledného binárního souboru
-Wall warnings all, vypsat všechny warningy
-pedantic "pedantsky" kontrolovat normu (to je fakt docela síla)

Čili příkaz bude vypadat např takto:
Kód: [Vybrat]
gcc -Wall -pedantic -o sync sync.cPokud by vše proběhlo správně v aktuální složce vznikne spustitelný soubor sync (pokud dáš ls, tak bude nejspíše zelený).

petergula

  • Stálý člen
  • **
  • Příspěvků: 1016
Re: Prikaz gcc
« Odpověď #17 kdy: 23 Října 2010, 23:31:16 »
Nechcem byt kontraproduktivny, ale myslim, ze gcc moze v pohode vypisovat viac ako jednu chybu, ale iba v pripade, ze chyby nie su fatalne. Co tym myslim? Ked napisem program:
Kód: [Vybrat]
int
main (void)
{
  int i;
  j = 0;     /* undeclared */
  k = 0;     /* undeclared */
  l = 0;     /* undeclared */
  return j;
}
tak compiler moze vypisat v pohode viac chyb:
Kód: [Vybrat]
>gcc ..\ja.c
..\ja.c: In function 'main':
..\ja.c:5:3: error: 'j' undeclared (first use in this function)
..\ja.c:5:3: note: each undeclared identifier is reported only once for each fun
ction it appears in
..\ja.c:6:3: error: 'k' undeclared (first use in this function)
..\ja.c:7:3: error: 'l' undeclared (first use in this function)
Cize prekladac aj ked narazil na chybu moze pokracovat v preklade a vypisvat viac ako jednu chybu, ale pre:
Kód: [Vybrat]
int
XXXX DDDD main (void)
{
  int i;
  j = 0;     /* undeclared */
  k = 0;     /* undeclared */
  l = 0;     /* undeclared */
  return j;
}
nemoze pokracovat a vypise iba jednu jedinu:
Kód: [Vybrat]
>gcc ..\ja.c
..\ja.c:2:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'DDD
D'
ntbk Dell 6420 (Amd Ati, Intel i7, 4GB RAM, 256GB SSD ...)
secondary/u svokrovcov:
Xubuntu (64bit) ntbk Asus A6Je (Ati X1450, Intel Core2Duo T5500, 2.5GB RAM ...)

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Prikaz gcc
« Odpověď #18 kdy: 24 Října 2010, 14:26:06 »
Takhle to dopadá, když někdo ve škole nedává pozor. A nebo když navštěvuje školu, na které nemá co dělat :-)

Vikinger

  • Návštěvník
  • Příspěvků: 19
Re: Prikaz gcc
« Odpověď #19 kdy: 24 Října 2010, 14:28:12 »
Takhle to dopadá, když někdo ve škole nedává pozor. A nebo když navštěvuje školu, na které nemá co dělat :-)

Teba sa pýtal niekto niečo??? mohol by si mojich tem držať zobák ....
za pohopení ďekujííííí

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re: Prikaz gcc
« Odpověď #20 kdy: 24 Října 2010, 16:39:20 »
Takhle to dopadá, když někdo ve škole nedává pozor. A nebo když navštěvuje školu, na které nemá co dělat :-)

Teba sa pýtal niekto niečo??? mohol by si mojich tem držať zobák ....
za pohopení ďekujííííí

 ;D

Vikinger

  • Návštěvník
  • Příspěvků: 19
Re: Prikaz gcc
« Odpověď #21 kdy: 24 Října 2010, 16:50:08 »
Takhle to dopadá, když někdo ve škole nedává pozor. A nebo když navštěvuje školu, na které nemá co dělat :-)

Teba sa pýtal niekto niečo??? mohol by si mojich tem držať zobák ....
za pohopení ďekujííííí

 ;D


Nič nemam proti tebe ale ešte som nevidel prispevok kde by si chtel pomoct, vzdy len hladas ako mozez vsetko obísť.
Teba by mohli nazvať kraľom podjebováku :-D

premet

  • Host
Re: Prikaz gcc
« Odpověď #22 kdy: 24 Října 2010, 17:15:47 »
Takhle to dopadá, když někdo ve škole nedává pozor. A nebo když navštěvuje školu, na které nemá co dělat :-)

Teba sa pýtal niekto niečo??? mohol by si mojich tem držať zobák ....
za pohopení ďekujííííí

 ;D


Nič nemam proti tebe ale ešte som nevidel prispevok kde by si chtel pomoct, vzdy len hladas ako mozez vsetko obísť.
Teba by mohli nazvať kraľom podjebováku :-D
Radši se prosím tě zklidni  :)

Mka má pravdu :
1) Snažil sem se ti tady včera pomoct, ale ty jsi si pořád mlel to svoje dokola a vůbec si neveděl co chceš nebo sis snad ani nečetl co sem ti tu psal
2) Mka měl v minulém topicu pravdu, evidentně si student a v předchozím topicu si chtěl taky pomoct s úkolem, i když si říkal, že ne. Navíc to bylo úplně na stejný způsob jako tady, vůbec nevíš co chceš a měl by jsi si pročíst aspon trochu teorie než se pustíš do praxe ať víš o co GO !!

Martin Šácha

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • ******
  • Příspěvků: 5153
Re: Prikaz gcc
« Odpověď #23 kdy: 26 Října 2010, 10:57:32 »
Když nebudete mít ve škole potřebný knihovny, nikdy ten program nezkompiluješ bez chyb, takže to akorát nechápeš ty. Kompilace ti skončí, protože nemůže jet dál kvůli potřebné knihovně, tudíž ti to nezobrazí další chyby, který se nacházejí dál v kódu, protože skončí předčasně.

Je třeba rozlišovat preprocesor a kompilátor. Preprocesor inkluduje knihovny, nahrazuje makra,... a řeší syntaktické chyby - těch chyb může být ve výpisu neomezeně mnoho, protože se kontroluje jenom text.

Naproti tomu kompilátor a linker má jako vstup syntakticky validní kód a řeší překlad do binárky - každá chyba je fatální, protože v binárce se už nedá pokračovat.
Mint MATE 64bit / DuckDuckGo.com
Programátoři považují WYSIWYG za špatné u kódu i u žen. Programátor chce "dostat to, co žádá“ – kód tajemný, neodpouštějící, nebezpečný.

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: Prikaz gcc
« Odpověď #24 kdy: 26 Října 2010, 11:51:56 »
Když nebudete mít ve škole potřebný knihovny, nikdy ten program nezkompiluješ bez chyb, takže to akorát nechápeš ty. Kompilace ti skončí, protože nemůže jet dál kvůli potřebné knihovně, tudíž ti to nezobrazí další chyby, který se nacházejí dál v kódu, protože skončí předčasně.

Je třeba rozlišovat preprocesor a kompilátor. Preprocesor inkluduje knihovny, nahrazuje makra,... a řeší syntaktické chyby - těch chyb může být ve výpisu neomezeně mnoho, protože se kontroluje jenom text.

Naproti tomu kompilátor a linker má jako vstup syntakticky validní kód a řeší překlad do binárky - každá chyba je fatální, protože v binárce se už nedá pokračovat.
Nechci ti do toho moc rypat, ale to co jsi napsal je plne chyb...
1. odstavec:
predpokladam, ze mluvis o konkretne C preprocesoru (jinak bys mel vysvetlit co pojmem preprocesor myslis) - C preprocesor zadnou syntaxi nekontroluje ( mozna krome blokovych komentaru EDIT:C nepodporujezanorene blokove komentare, takze neni co kontrolovat), ale pouze odstranuje komentare, inkluduje obsah hlavickovych souboru (!=knihovny) a nahrazuje makra (to je jedna z mala veci co jsi tu napsal sparavne  ;) )
2. odstavec:
kompilator=prekladac a zahrnuje jak lexikalni, syntaktickou, semantickou analyzu tak generovani kodu, takze prohlaseni, ze kompilator ma na vstupu syntakticky validni kod je pitomost. Pokud je v kodu chyba tak u bezneho kompilatoru ani ke generovani ciloveho kodu(binarky) ani nedojde (mela by se najit nejpozdeji pri semanticke analyze), fatalita chyby zalezi na typu chyby a schopnostech prekladace...
« Poslední změna: 26 Října 2010, 11:57:29 od MacHala »
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

 

Provoz zaštiťuje spolek OpenAlt.