Portál AbcLinuxu, 10. května 2025 05:06
#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
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í.
#define timezone struct timezonecož na první pohled funguje, ale někde se tím něco rozes...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.