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'|
|