Portál AbcLinuxu, 10. května 2025 02:06

Dotaz: Problem s GCC

29.8.2007 10:49 sandokan
Problem s GCC
Přečteno: 276×
Odpovědět | Admin
Zdravim

Pisu nejaky soft pro powerpc od freescale a pouzivam prekladac gcc (GNU PPC2.95) ale jsem nucen ho provozovat pod cygwinem ve widlich, protoze tu maji zabehle vyvojove prostredi :) Nejsem prilis znaly nastaveni gcc, jsem si schopny napsat nejaky primitivni makefile a pouzivam optiony -O2 -g -Wall a to mi doposavat stacilo pri psani konzolovych aplikaci v linuxu. Ale ted mam problem, ze preklad skonci chybou na takto pro me standardni veci jako :

void funkce(void) { int a;

jina_funkce();

int b; }

preklad skonci chybou na radku kde je def a dek. promenne 'b' a to parse error before 'int' Jedina moznost je bud def. 'b' hned na zacatku jako 'a' a nebo vytvorit novy blok. Tedy chyba nastane jakmile neni nejaka promenna def. na zacatku bloku.

Jinak pouzivam vyvoj. prostredi Dev-C++ coz je asi irelevantni informace :)

Dekuju za info

icq : 75115741
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 29.8.2007 10:54 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Problem s GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin
V C musí být deklarace proměnné na začátku bloku. Není to tedy chyba překladače, ale tvoje.
Hello world ! Segmentation fault (core dumped)
DjAARA avatar 29.8.2007 11:05 DjAARA | skóre: 32 | Praha|Náklo|Olomouc
Rozbalit Rozbalit vše Re: Problem s GCC
Ehm, ovšem závislosti na standardu samozřejmě… C99 určitě umožňuje deklaraci proměnné kdekoliv (například i v for (int i = 0;;)). A pak záleží na překladači jak se s tím popere. Já se s problémy setkal u Sun CC a od té doby si na to dávám pozor ;-).
29.8.2007 16:18 skalis
Rozbalit Rozbalit vše Re: Problem s GCC
Dobry den, Ansi C nedovoluje deklarovat promenne kdekoliv, ale C99 ano, pri prekladu pouzijte -std=c99, snad to pouzita verze prakladace zvladne...
S pozdravem JS
29.8.2007 11:21 ivan | skóre: 17 | blog: ivan
Rozbalit Rozbalit vše Re: Problem s GCC
Odpovědět | | Sbalit | Link | Blokovat | Admin
Netusim co je freescale, ale na RS/6000 bych nikdy nepouzil gcc pokud bych mel moznost pouzivat xlC(IBM kompilator). gcc generuje pro PPC spatnej a pomalej kod. Taky jsem nikdy neslysel o gcc PPC2.95. Na AIXu, kdyz uz jsem byl nucen pouzivat gnu kompilator, tak vzdy fungovala lepe poslednu alfa verze 3.0 nez cokoliv oznaceneho jako "stable"(2.95).

PS: tohle je mozne v C++, ale ne v Ccku. Nejdrive deklaruj promenna a pak je pouzivaj. Popr zkus:
void funkce(void) 
{ 
 int a;
 jina_funkce();
 {
   int b; 
 } 
}
29.8.2007 11:33 sandokan
Rozbalit Rozbalit vše Re: Problem s GCC
V ansi C je to mozne urcite, protoze to sem tam pouzivam a vzdy to bylo bez problemu. Jinak freescale je vlastne Motorola.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.