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

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

1

02.10.2011, 23:11

Verweis auf nicht aufgelöstes externes Symbol

Halli Hallo,
Habe da ein kleines Problem... Also ich habe eine main.cpp geschrieben (mit Allegro),die auch funktioniert. hab ein neues Projekt erstellt (Konsolenanwendung) und habe die main des einen Programmes ind den Quelldateienordner des anderen Programmes gezogen--- Und dann sagt der Compiler folgendes:

1>------ Erstellen gestartet: Projekt: Allegro_Listing_003, Konfiguration: Debug Win32 ------
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".
1>C:\Users\Luca\Desktop\Visual_allegro\First\Allegro_Listing_003\Debug\Allegro_Listing_003.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Ich glaube nicht, dass hierfür der Quellcode benötigt wird, da es ja in dem anderen Prog. auch funktioniert...

2

02.10.2011, 23:15

Evtl. die benötigten .libs nicht hinzugelinkt.
Das, kannst du dir merken, ist oft der Grund für nicht aufgelöste externe Symbole.

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

3

02.10.2011, 23:21

Hmmm... Doch, die hab ich eingebunden, genau wie im anderen...
Wenn ich sage er soll das Prg. trotzdem ausführen steht dort: Der Compiler kann die angegebene Datei nicht finden: Allegro_Listing_003.exe

und wenn ich im Debug Ordner nachsehe, fehlt die .exe wirklich...
Aber bei dem anderem Programm (da, wo es funktioniert) ist die .exe da! Ich habe auch versucht diese .exe zu kopieren und in den anderen Debugordner, also da wo sie fehlt einzufügen, aber sobald ich debugge wird die exe automatisch wieder gelöscht ! -.-*

4

02.10.2011, 23:23

Das sie nicht erstellt und somit nicht vorhanden ist ist klar, da sie durch das nicht aufgelöste externe Symbol nicht kompiliert werden kann.
Hast du vllt im Debug modus die libs hinzugefügt und versucht ein Release Build zu erstellen ? Oder umgekehrt ? Und 100% alle nötigen Libs gelinkt ?

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

5

02.10.2011, 23:23

Hier doch nochnal der Quellcode:
Und nwie gesagt, in dem einen Programm geht alles im anderen nicht...

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
#include <allegro.h>

int set_graphic_mode()
{
    set_color_depth (16);

    if (set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, 640, 480, 0, 0) >= 0)
    {
        return 1;
    }

    set_color_depth (15);

    if (set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, 640, 480, 0, 0) >= 0)
    {
        return 1;
    }

    set_color_depth (16);

    if (set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0) >= 0)
    {
        return 1;
    }
    return 0;
}

int main (int argc, char **argv)
{
    allegro_init ();
    install_keyboard ();

    if (!set_graphic_mode ())
    {
        allegro_message ("Unable to set graphic mode");
        exit(0);
    }

    // Laden des Bildes
    BITMAP *logo = load_bitmap("allegro.tga", NULL);

    acquire_screen ();
    clear (screen);

    blit(logo, screen,
         0, 0,
         (SCREEN_W - logo->w)/2, // zentriert
         (SCREEN_H - logo->h)/2, // zentriert
         logo->w, logo->h);

    release_screen ();

    while (!keypressed());
    return 0;
} END_OF_MAIN ();

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

6

02.10.2011, 23:25

Du hast den falschen Projekttyp erstellt. Du brauchst eine Windowsanwendung oder deine main() fehlt.

Du hättest auch die Forensuche benutzen können. Jetzt habe ich das eben für ich gemacht.
https://www.spieleprogrammierer.de/index…tmainCRTStartup

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

7

02.10.2011, 23:36

danke schön. Wäre ich nie drauf gekommen :/

Werbeanzeige