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

Lurnas

Frischling

  • »Lurnas« ist der Autor dieses Themas

Beiträge: 78

Beruf: Schüler

  • Private Nachricht senden

1

15.07.2004, 17:30

undefined reference

Hi,
mein make liefert mir folgenden fehler(jaja, wieder dieses "kotzing"^^):

Quellcode

1
2
3
4
5
6
7
8
9
10
kotzing.o: In function 'show()'
D:\eigene programme\minispiel\kotzing.cpp:38: undefined reference to 'doubleBuffer'
.u.
.s.
.w.
kotzing.o: In function 'init()'
D:\eigene programme\minispiel\kotzing.cpp:61: undefined reference to 'doubleBuffer'
.u.
.s.
.w.

Hier nochmal der Code der Datei:

Quellcode

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//kotzing.cpp 
#include <allegro.h> 
#include <time.h> 
#include "kotzing.h" 
#include "title.h" 

volatile int timerCounter = 0; 
static void  timerCounterUpdater() 
{ 
    timerCounter++;    
} 
END_OF_STATIC_FUNCTION(timerCounterUpdater); 

//Funktionen 
void fatalError(char *str) 
{ 
    allegro_message(str); 
    exit(0); 
} 

int setGfxMode(int mode, int width, int height) 
{ 
    static int colorDepths[] = { 16, 24, 15, 32}; 
    int a;  
    
    for (a=0; a < 4; a++) 
    { 
        set_color_depth(colorDepths[a]); 
        if (set_gfx_mode(mode, width, height, 0, 0) >= 0) 
        { 
            return TRUE; 
        } 
    } 
    return FALSE; 
} 

void show() 
{ 
    blit(doubleBuffer, screen, 0,0,0,0, doubleBuffer->w, doubleBuffer->h); 
} 

void init() 
{ 
    srand(time(NULL)); 
    
    //init 
    allegro_init(); 

    if (!setGfxMode(GFX_AUTODETECT_FULLSCREEN, 1024, 768)) 
    { 
        if (!setGfxMode(GFX_AUTODETECT_WINDOWED, 1024, 768)) 
        { 
            fatalError("Unable to set a graphics mode"); 
        } 
    } 
    install_timer();    
    install_keyboard(); 
    install_joystick(JOY_TYPE_AUTODETECT); 
    install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL); 
    
    doubleBuffer = create_bitmap(SCREEN_W, SCREEN_H); 
    if (!doubleBuffer) 
    { 
        fatalError("Unable to create double buffer"); 
    } 

    LOCK_FUNCTION(timerCounterUpdater); 
    LOCK_VARIABLE(timerCounter); 
    install_int_ex(timerCounterUpdater, BPS_TO_TIMER(60)); 
} 

//ende 
void done() 
{ 
    destroy_bitmap(doubleBuffer); 
} 

//main 
int main(int argc, char** argv) 
{ 
    int gameOver = FALSE; 
    
    init(); 
    
    while (!gameOver) 
    { 
       title(); 
    } 
    
    done(); 
} 
END_OF_MAIN();



Ich verwende den MinGW32 Compiler und Allegro
und keine IDE (s. Thread davor)

gruß,
Lurnas

2

15.07.2004, 19:02

Du hast offenbar dieses doubleBuffer nicht definiert, sondern nur deklariert(und dann benutzt). Zumindest ist deinem Compiler deine Definition nicht bekannt. :)

Lurnas

Frischling

  • »Lurnas« ist der Autor dieses Themas

Beiträge: 78

Beruf: Schüler

  • Private Nachricht senden

3

15.07.2004, 19:26

hier in dieser header datei:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
//kotzing.h
#ifndef KOTZING_HEADER
#define KOTZING_HEADER
#include <allegro.h>

extern BITMAP*      doubleBuffer;
extern volatile int timerCounter;

void fatalError(char *str);
void show();

#endif

müsste das nicht reichen??[/code]

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

15.07.2004, 19:29

Wenn du extern sagst ist das keine Definition sondern "nur" ein hinweis das diese Var existiert und andere darauf zugreifen können. Du muss in deiner cpp
BITMAP* doubleBuffer;
einfügen.

Lurnas

Frischling

  • »Lurnas« ist der Autor dieses Themas

Beiträge: 78

Beruf: Schüler

  • Private Nachricht senden

5

15.07.2004, 19:31

ok, funktioniert.
Danke!!

Und wieder was dazugelernt^^

Werbeanzeige