Portál AbcLinuxu, 23. dubna 2024 13:36


Dotaz: problém s překladem

19.9.2005 17:18 BlackShark | skóre: 15 | blog: windows
problém s překladem
Přečteno: 70×
Odpovědět | Admin
Zdravím. Dneska jsem narazil na problém, který nejsem schopen vůbec vyřešit. Jde o problém po vložení jistého header file do souboru s třídou v C++. Mám toto :
#ifndef TENGINE
#define TENGINE

#include [stdio.h]
#include [unistd.h]

//#include [stdexcept]

#include [GL/glx.h]
#include [GL/gl.h]
#include [GL/glu.h]
#include [X11/extensions/xf86vmode.h]
#include [X11/keysym.h]
#include [sys/time.h]

#include "../T_IniFile/T_IniFile.h"
#include "define.h"
#include "T_GameEvent.h"
#include "../define.h"
pokdu dám odpovídající soubor *.cpp obsahující jen #include "T_Engine.h" přeložit vše jde v pořádku. Ovšem jakmile odstraním komentář u stdexcept, již přeložit nejde a dostávám chybu :
T_Engine.cpp: In member function `void T_Engine::MainLoop()':
T_Engine.cpp:187: error: expected `;' before "timez1"
T_Engine.cpp:187: warning: statement has no effect
T_Engine.cpp:188: error: expected `;' before "timez2"
T_Engine.cpp:188: warning: statement has no effect
T_Engine.cpp:246: error: `timez1' undeclared (first use this function)
T_Engine.cpp:246: error: (Each undeclared identifier is reported only once for each function it appears in.)
T_Engine.cpp:250: error: `timez2' undeclared (first use this function)
přičemž timez1 i timez2 jsou deklarovány na řádkách 187 a 188 takto :
timezone timez1;
timezone timez2;
Co s tím mám udělat aby to šlo přeložit i s include stdexcept. Překládaný je ten soubor g++ -c -ansi -Wall T_Engine.cpp
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.9.2005 17:52 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: problém s překladem
Odpovědět | | Sbalit | Link | Blokovat | Admin
To by nemělo jít přeložit ani s stdexcept, protože tam má být
struct timezone timez1;
struct timezone timez2;
timezone není typ, ale jméno struktury.

Pokud ti to přeložit jde, děláš nějaké špinavé triky s vyhrazenými jmény... a dobře ti tak.

Mimochodem,
#include <stdio.h>
#include <unistd.h>

#include <stdexcept>

#include <GL/glx.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <X11/extensions/xf86vmode.h>
#include <X11/keysym.h>
#include <sys/time.h>

struct timezone timez1;
struct timezone timez2;
se přeloží bez chyb. Ostatní hlavičkové soubory jsou tvé vlastní.
19.9.2005 17:53 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: problém s překladem
s/s stdexcept/bez stdexcept/
19.9.2005 18:01 BlackShark | skóre: 15 | blog: windows
Rozbalit Rozbalit vše Re: problém s překladem
Jo tak s tím struct mi to jde taky. Díky. Bohužel nevím jak bych špinavé triky udělal. Nemůžeš mě třeba nasměrovat ? Protože byl bych raději, kdyby mi to nešlo hned, než takhle po vložení souboru. Ale jinak moc děkuji ... tohle by mě snad vůbec nenapadlo ...
19.9.2005 18:05 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: problém s překladem
Co já vím, něco jako
#define timezone struct timezone
což na první pohled funguje, ale někde se tím něco rozes...
19.9.2005 18:11 BlackShark | skóre: 15 | blog: windows
Rozbalit Rozbalit vše Re: problém s překladem
Hm, tak to nebude ono. Tak řekněme, že to byl zázrak, že to šlo před tím přeložit :-)

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.