Hge + Tokamak



  • Hallo,
    ich benutze die HGE Engine und möchte darin jetzt tokamak einbinden
    Hab nen Beispiel code gefunden, den dann eingebunden, kein Problem, aber scheinbar gibt es noch ein Problem:

    Dev-Cpp Compiler schrieb:

    38 C:\Programme\Dev-Cpp\include\math\ne_math.h `struct neV3::<anonymous union>::nTag' invalid; an anonymous union can only have non-static data members

    Hier sind die Dateien:

    http://home.arcor.de/rambo256/Dateien/C++/physics.h
    http://home.arcor.de/rambo256/Dateien/C++/physics.cpp

    und der Code-Schnipsel, den der mir als Problem anzeigt:

    struct neV3
    {
    public:
    
    	union
    	{
    		f32 v[4];
    
    		struct nTag
    		{
    			f32 X,Y,Z,W;
    		}n;
    	};
    

    Darunter befinden sich nur noch Inline Funktionen etc.

    Hoffe einer kann mir weiterhelfen, hier ist noch der link wo ich den Bsp-Code her habe: http://relishgames.com/forum/viewtopic.php?t=642&start=0

    Thx!



  • Ist der Header von Tokamak?! (komischer Pfad)

    Bye, TGGC



  • Jop, das ist eine include Datei von Tokamak.


  • Mod

    funzt das?

    {
    public:
    
    	union
    	{
    		f32 v[4];
    
    		struct nTag
    		{
    			f32 X,Y,Z,W;
    		};
    	};
    

    rapso->greetS();



  • ne leider nicht, ich habs mal so probiert:

    struct neV3
    {
    public:
    
    	union 
    	{
    		f32 v[4];
    
    		struct nTag
    		{
    			f32 X,Y,Z,W;
    		};
            nTag n;
    
    	};
    

    Aber dann kommt immer noch der gleiche Fehler.
    Ich glaube es liegt an dieser Zeile:

    f32 X,Y,Z,W;
    

    Wahrscheinlich befindet der Compiler diese als statisch, obwohl er aber nicht-statische Vars erwartet....

    Edit:

    Wenn man das Union ausklammert, dann klappts.Aber nun hab ich eine ganze Menge an linker errors... Das ist echt zum verzweifeln, mein Freund hat genau das gleiche und bei ihm klappt es auf Anhieb und er musste nichts ändern, obwohl wir alles gleich haben.Ich denke, ich installiere noch einmal Dev-Cpp neu...
    Ich berichte dann, ob es etwas gebracht hat!

    Edit2:
    Nach der Neuinstallation und den Änderungen von oben habe ich die linker-errors immer noch..
    .

    Dev-Cpp 5 schrieb:

    [Linker error] undefined reference to `neSimulator::CreateSimulator(neSimulatorSizeInfo const&, neAllocatorAbstract*, neV3 const*)'



  • Das union darf man mit ziemlicher Wahrscheinlichkeit nicht rausnehmen. Entweder entspricht der Code dem Standard und dein Compiler ist Frups, oder der Code ist Frups. Das wissen die C++ Gurus aber besser...

    Bye, TGGC



  • Was ich aber nicht versteh ist, das bei meinem Kumpel alles läuft, obwohl er exakt dasselbe gemacht hat...
    Er hat diesselbe IDE+Compiler und auch die neueste Version von Tokamak drauf und bei ihm läufts 😮
    **
    Edit:**
    Jetzt hat er auch damit ein Problem... 🙄

    Edit2:
    Nach genauerem Hinsehen, ist mir aufgefallen das der ja einen Struct (nTag) in einem anderem Struct (NeV3) definiert, nachdem ich das geändert habe, war dieser Fehler beseitigt.Nun hab ich wieder diese linker-errors, obwohl ich alle Tokamak libs dem Projekt hinzugefügt habe...



  • Hab ich gar nicht 😉

    So müsste es gehen (nTag außerhalb von neV3 definieren):

    struct nTag
    {
         f32 X,Y,Z,W;
    }
    
    struct neV3
    {
    public:
    
        union
        {
            f32 v[4];
    
            nTag n;
        };
    


  • Nach genauerem Hinsehen, ist mir aufgefallen

    Du hast da glaube ich mich mit dir verwechselt



  • Ach du bist auch hier angemeldet. :p


Anmelden zum Antworten