[ WEXY @ 23.11.2004. 15:55 ] @
Dobijam 2 meni zagonetne greske pri kompajliranju, koristeci GCC 3.3.4. Stvari ne bi bile toliko zagonetne da taj manje vise isti kod nije radio perfektno dok nisam resio da malo bolje organizujem stvari kako bi mi bilo lakse da nadogradjujem posle. Ako to ista znaci, mada mislim da apsolutno nema nikakve veze nove source i header fajlove sam iskucao koristeci `pico' i posle ih ubacio u KDevelop. Potom uradio sve isto kao i za prvi put, kreirao istu configure skriptu i makefile-ove. Jedina razlika u kodu je sto su neke stvari koje su se odnosile na iste stvari spojene u jedan fajl, uglavnom cista reorganizacija.

./configure prodje, mada mislim da to i nije bitno toliko za ovo..
make daje sledece greske:

wexy@frager:~/Devel/App/dt$ make
make all-recursive
make[1]: Entering directory `/home/wexy/Devel/App/dt'
Making all in src
make[2]: Entering directory `/home/wexy/Devel/App/dt/src'
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -DGCC_3_1 -DEXT_HASH -I/usr/local/include/OGRE -g -O2 -MT dt.o -MD -MP -MF ".deps/dt.Tpo" -c -o dt.o dt.cpp; \
then mv -f ".deps/dt.Tpo" ".deps/dt.Po"; else rm -f ".deps/dt.Tpo"; exit 1; fi
In file included from dt.cpp:21:
dt.h:20: error: parse error before `namespace'
dt.cpp:38: error: parse error at end of input
make[2]: *** [dt.o] Error 1
make[2]: Leaving directory `/home/wexy/Devel/App/dt/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/wexy/Devel/App/dt'
make: *** [all] Error 2

relevatni deo dt.h:
Code:

#include <iostream>
#include <OGRE/Ogre.h>
#include <OGRE/OgreConfigFile.h>
#include "dtframelistener.h"

using namespace Ogre;

class DragonTales
{
public:


dt.cpp:
Code:

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <iostream>
#include <OGRE/Ogre.h>
#include "dt.h"

int main(int argc, char* argv[])
{
    try
    {
        DragonTales* dt;
        dt = new DragonTales;

        dt->go();
    }
    catch (Ogre::Exception& ogreException)
    {
        std::cerr << ogreException.getFullDescription().c_str() << std::endl;
    }

    return 0;
}



Sad, meni apsolutno nije jasno zi kog razloga se on buni kod `using namespace Ogre', kada komentujem tu liniju ne prijavljuje gresku, trenutno definisanje tog namespace-a mi i nije potrebno jer ne verujem da ce neka funkcija da se preplice sa standardnim C++ funkcijama medjutim ovako je urednije i sto je glavni problem pre je radilo, kada u stari kod na bilo kom mestu ubacim `using namespace Ogre' cak i tamo gde nije potrebno make prodje bez problema.

Drugi error mi je jos cudniji, `parse error at end of input' ?!?! iz kog razloga?

Ako neko ima neku ideju u cemu je problem bilo bi mi od pomoci, hvala.
[ WEXY @ 23.11.2004. 17:10 ] @
Samo da javim da sam resio problem, greska je bila u skroz levom fajlu koju mi nije ni prijavljivao, a otkrio sam je slucajno.
[ filmil @ 23.11.2004. 21:31 ] @
Da probam da pogodim: ostala je da visi tačka-zapeta (;) u nekom od zaglavlja? Kada se ovako nešto desi, C prevodioci umeju da daju čudne poruke o greškama koje ne mogu da se uhvate ni za glavu ni za rep.

Tada može da pomogne proturanje datoteke kroz pretprocesor: kompajler ispiše tekst izvornog koda kakav se dobije kada se ubace doslovce sva zaglavlja i svi makroi. Za GCC je fleg -E.

Dakle:

Code:
gcc -E program.c
[ WEXY @ 23.11.2004. 22:44 ] @
U poprilicnoj meri si pogotio sem sto nije ostala da visi `;' vec je u jednom od zaglavlja falila viticasta zagrada `}' i to sam je otkrio sasvim slucajno.

Medjutim, ne vezano za ovaj problem avanturi nikad kraja te sada dobijam `Fatal signal, Segmentation Fault (SDL Parachute Deployed)' i evo od trenutka kada sam resio prethodni problem pa sve do sada nisam uspeo da resim ovaj drugi :), a i njega cu da resim verovatno nekom slucajnoscu :)

Pozdrav!
[ leka @ 30.11.2004. 11:29 ] @
Meni se "SDL Parachute Deployed" javlja kad imam problema sa zvukom (recimo ne instaliram zvucnu kartu ili slicno)...
[ filmil @ 30.11.2004. 11:30 ] @
Citat:
Meni se "SDL Parachute Deployed" javlja kad imam problema sa zvukom (recimo ne instaliram zvucnu kartu ili
Jeste li primetili da uglavnom kada C kompajler ili neka biblioteka jave grešku, u najvećem broju slučajeva poznavanje teksta greške (parse error, SDL parachute i sl) uopšte ne pomaže otkrivanju?

f