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

22.03.2012, 15:44

sfml - Standardbibliothek "LIBCMT" steht in Konflikt mit anderen Bibliotheken

Hallo,
Ich habe gestern folgenden Code mit sfml 2 geschrieben. Ich habe im Release mode die static libaries verwendet. Das Programm funktioniert einwandfrei. Dann wollte ich heute ein zweites Projekt erstellen. Ich habe genau wie gestern die verschiedenen Bibliotheken und Includeverzeichnisse eingebunden. Dann habe ich den Quellcode kopiert und in mein neues Projekt eingeführt um zu sehen, ob sfml 2 erfolgreich initialisiert wurde. Das seltsame: Ich kann mein Programm zwar im Debugmodus ohne Probleme starten, aber NICHT im Release mode. Ich erhalte immer folgenden Fehler:

Quellcode

1
2
3
4
5
1>------ Erstellen gestartet: Projekt: sfml2.0_01, Konfiguration: Release Win32 ------
1>LINK : warning LNK4098: Standardbibliothek "LIBCMT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
1>MSVCRT.lib(crtexew.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_WinMain@16".
1>c:\users\luca\documents\visual studio 2010\Projects\sfml2.0_01\Release\sfml2.0_01.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Kann mir jemand sagen, woran das liegt? Hier nochmal der komplette Quellcode:

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
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
#include <SFML/Graphics.hpp>
 
int main()
{
        sf::RenderWindow Window(sf::VideoMode(800, 600, 32), "SFML Sample Application");
 
        sf::Texture Image;
        if (!Image.loadFromFile("Glados.png"))
            return 1;

        sf::Sprite Sprite;
        Sprite.setTexture(Image);
        Sprite.setPosition(100.0f, 30.0f);
        Sprite.setRotation(30.0f);
        Sprite.setScale(.5f, .3f);
        Sprite.setColor(sf::Color(255, 0, 0, 128));

        sf::Sprite Sprite2;
        Sprite2.setTexture(Image);
        Sprite2.setPosition (200.0f, 200.0f);
        Sprite2.setScale(.8f, .8f);

        sf::Texture Image2;
        if (!Image2.loadFromFile("Moon.png"))
            return 1;

        sf::Sprite Sprite3;
        Sprite3.setTexture(Image2);
        Sprite3.setPosition(400.0f, 200.0f);
        Sprite3.setScale(.1f, .1f);

        while (Window.isOpen())
        {
                sf::Event Event;
                while (Window.pollEvent(Event))
                {
                        switch (Event.type)
                        {
                        case sf::Event::Closed:
                                Window.close();
                                break;
                        default:
                                break;
                        }
                }
 
                Window.clear(sf::Color(0, 255, 255));
                Window.draw(Sprite);
                Window.draw(Sprite2);
                Window.draw(Sprite3);
                Window.display();
                
                sf::Image Screenshot = Window.capture();
                Screenshot.saveToFile("Screenshot.jpg");
                
        }
        
        
 
        return 0;
}

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

2

22.03.2012, 16:00

Zitat

MSVCRT.lib(crtexew.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_WinMain@16".

Da hast du wohl ein Windowsprojekt.
Erstell am besten ein neues Konsolenprojekt. ;)

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

3

22.03.2012, 16:06

ich habe alles genau nach diesem Video gemacht. Und mein anderes Projekt ist genauso, und es funktioniert...

http://www.youtube.com/watch?v=MgDFGkFDs…16&feature=plcp

storage

Treue Seele

Beiträge: 138

Wohnort: Bad Salzungen

  • Private Nachricht senden

4

22.03.2012, 16:13

Zitat

MSVCRT.lib(crtexew.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "_WinMain@16".

Da hast du wohl ein Windowsprojekt.
Erstell am besten ein neues Konsolenprojekt. ;)


Ein Windowsprojekt ist aber richtig, zumindest wenn du später releasen willst, dazu musst du dann aber die sfml-main.lib linken.

Du kannst dann genauso die "main" funktion nutzen sfml übernimmt den Rest für dich. Was ist der Vorteil daran? Die Konsole öffnet sich nicht mehr,
in der Entwicklungsphase ist dies ganz nützlich aber beim Release will ich sie doch nicht sehen.

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

5

22.03.2012, 16:19

Also ich habe eigentlich weder ein Konsolen Projekt, noch ein Wondows Projekt erstellt. Ich bin auf:
Datei - neu - Projekt - Leeres Projekt

Und bei dem einen Projekt funktioniert alles ohne Probleme und bei dem anderen (was exakt dasselbe ist) geht nichts im release mode? Warum?

Luca

Treue Seele

  • »Luca« ist der Autor dieses Themas

Beiträge: 188

Wohnort: Braunschweig

  • Private Nachricht senden

6

22.03.2012, 16:38

Ok, habe das Problem beheben könne.

@storage: Ja, es lag darean, dass ich im Relese mode die sfml-main.lib nicht eingebunden hatte ^^

Vielen Dank!

Werbeanzeige