Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

1

10.12.2008, 16:06

wieder linker problem

hi, Hab wieder mal ein Problem
und ich weiß das das ein "Anfänger" Problem ist.
Und ja ich hab alles eingebunden was ich brauche.
(zu mindest sieht es so aus)
Ach ja ich benutz Code::Blocks

also ich hab eine dll datei in der 2 klassen drin sind
(project Core)
basic.h

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
//defnif blabla

//define blabla


//include gl,glfw,il

#if defined(CORE_EXPORTS)
    #define DLL __declspec(dllexport)
#else
    #define DLL __declspec(dllimport)
#endif
//....


Graphics.h

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//defnif blabla

//define blabla


#include "basic.h"

class DLL Graphics{
  private:
  //....

static Graphic* _instance;
class GraphicGuard{
        private:
            inline ~GraphicGuard(){
                if(! Graphic::_instance){
                    delete Graphic::_instance;
                    Graphic::_instance = NULL;
                }
             }
    };
    friend class GraphicGuard;
  public:
  //....

inline static Graphic* getInstanz(){
            static GraphicGuard g;
            if (!Graphic::_instance)
                Graphic::_instance = new Graphic;
            return Graphic::_instance;
        }
};


Input.h

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//defnif blabla

//define blabla


#include "basic.h"

class DLL Input{
  private:
  //....

static Input* _instance;
class InputGuard{
        private:
            inline ~InputGuard(){
                if(! Input::_instance){
                    delete Input::_instance;
                    Input::_instance = NULL;
                }
             }
    };
    friend class InputGuard;
  public:
  //....

inline static Input* getInstanz(){
            static InputGuard g;
            if (!Input::_instance)
                Input::_instance = new Input;
            return Input::_instance;
        }
};



Neues Project:

C-/C++-Quelltext

1
2
3
4
5
6
//include Graphic,Input

void main(){
Input::getInstanz()->InitInput();
Graphic::getInstanz()->InitGL();
//..

}

Linker:
-libCore.a
-devil
-ilu
-ilut
-glfw
-opengl32
-glu32
-gdi32

das märkwürdige ist:
wiso gibt er den fehler in der graphics.h datein an obwohl die Klasse "Input" in der Input.h datei drin ist

Quellcode

1
2
3
4
5
6
7
8
9
obj\Debug\main.o||In function `_ZN3F2C5Input10getInstanzEv':|
\..\Graphics.h:(.text$_ZN3F2C5Input10getInstanzEv[F2C::Input::getInstanz()]+0x52)||undefined reference to `__imp___ZN3F2C5Input9_instanceE'|
\..\Graphics.h:(.text$_ZN3F2C5Input10getInstanzEv[Input::getInstanz()]+0x5c)||undefined reference to `__imp___ZN3F2C5Input9_instanceE'|
\..\Graphics.h:(.text$_ZN3F2C5Input10getInstanzEv[Input::getInstanz()]+0x80)||undefined reference to `__imp___ZN3F2C5InputC1Ev'|
\..\Graphics.h:(.text$_ZN3F2C5Input10getInstanzEv[Input::getInstanz()]+0xca)||undefined reference to `__imp___ZN3F2C5Input9_instanceE'|
\..\Graphics.h:(.text$_ZN3F2C5Input10InputGuardD1Ev[Input::InputGuard::~InputGuard()]+0x7)||undefined reference to `__imp___ZN3F2C5Input9_instanceE'|
\..\Graphics.h:(.text$_ZN3F2C5Input10InputGuardD1Ev[Input::InputGuard::~InputGuard()]+0x11)||undefined reference to `__imp___ZN3F2C5Input9_instanceE'|
\..\Graphics\Graphics.h:(.text$_ZN3F2C5Input10InputGuardD1Ev[Input::InputGuard::~InputGuard()]+0x27)||undefined reference to `__imp___ZN3F2C5InputD1Ev'|
\..\Graphics\Graphics.h:(.text$_ZN3F2C5Input10InputGuardD1Ev[Input::InputGuard::~InputGuard()]+0x39)||undefined reference to `__imp___ZN3F2C5Input9_instanceE'|

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

10.12.2008, 16:12

Wo werden eigentlich Graphics::_instance und Input::_instance definiert?
@D13_Dreinig

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

3

10.12.2008, 16:26

>.< hab vergessen die beiden varaiblen in der cpp zu deklarieren

aber da kommen immer noch 2 solcher fehler

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

10.12.2008, 16:30

Welche denn?
@D13_Dreinig

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

5

10.12.2008, 16:32

Graphics::_instance und Input::_instance

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

10.12.2008, 16:33

Zitat von »"kiba"«

Graphics::_instance und Input::_instance


Die Fehler... :roll:
@D13_Dreinig

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

7

10.12.2008, 16:43

o.0 warum denn das
i hab sie einfach auf NULL deklariert
und wenn ich die deklaritionen auskommentiere dann kommen 5 fehler
und wenn ich die so lasse kommen nur 2 fehler

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

10.12.2008, 16:45

Zitat von »"kiba"«

o.0 warum den das
i hab zu einfach auf NULL deklariert


Nochmal gaaanz langsam:

Zitat von »"kiba"«

aber da kommen immer noch 2 solcher fehler


Was für Fehler treten noch auf?
@D13_Dreinig

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

9

10.12.2008, 16:46

immer noch die selben nur weniger ^^

Quellcode

1
2
3
4
obj\Debug\main.o||In function `_ZN3F2C5Input10getInstanzEv':|
\..\Graphics.h:(.text$_ZN3F2C5Input10getInstanzEv[Input::getInstanz()]+0x80)||undefined reference to `__imp___ZN3F2C5InputC1Ev'|
\..\Graphics.h:(.text$_ZN3F2C5Input10InputGuardD1Ev[Input::InputGuard::~InputGuard()]+0x27)||undefined reference to `__imp___ZN3F2C5InputD1Ev'|
||=== Build finished: 2 errors, 0 warnings ===|

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

10.12.2008, 17:08

Der Destruktor deiner Guards sollte auf jeden Fall mal öffentlich sein...
@D13_Dreinig

Werbeanzeige