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

1

30.04.2015, 19:39

window.draw funktioniert nicht (SFML)

Ich habe folgendes Problem:
Nur wenn ich window.draw auskommentiere funktioniert es.
Ich hoffe jemand kann mir helfen :)

#include <SFML\Graphics.hpp>
#include <iostream>

using namespace std;

int main()
{
sf::RenderWindow window(sf::VideoMode(1280,720), "SFML");
sf::Event event;
sf::Texture texture;
sf::Sprite sprite;
sprite.setTexture(texture);

while (window.isOpen())
{
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
window.close();
}

if(!texture.loadFromFile("Images\\Background.png", sf::IntRect(0, 0, 1280, 720)))
window.close();


window.clear();
window.draw(sprite);
window.display();
}
}


Wenn ich probiere das im Debug zu starten steht da:
1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: static class sf::RenderStates const sf::RenderStates::Default" (?Default@RenderStates@sf@@2V12@B)".

Ich hoffe jemand kann mir helfen.

Mfg
AntiKeks

2

30.04.2015, 20:54

Also erstmal, setz deinen Code bitte in die dafür vorgesehenen Code tags.

Zu deinem Code:
Es wäre sinnvoll, wenn du die Textur lädst, bevor du sie einem Sprite zuweist. Außerdem solltest du die Textur auch nur ein einziges Mal laden, und zwar am Anfang. Sie in jedem Loop Durchlauf erneut zu laden macht keinen Sinn.


1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: static class sf::RenderStates const sf::RenderStates::Default" (?Default@RenderStates@sf@@2V12@B)".
Hast du auch die richtigen Librarys gelinkt? Nur die Header zu inkludieren reicht nicht.

Julién

Alter Hase

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

3

30.04.2015, 21:11

free()! free()! Verdammt, klappt nicht gegen Malloc.

Du hast im Debug Modes etwas nicht gelinkt. Vll. auch in der falschen Reihenfolge.
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

4

30.04.2015, 23:01

Wusste gar nicht das man in der falschen Reihenfolge linken kann?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Hannes« (30.04.2015, 23:15)


Julién

Alter Hase

Beiträge: 717

Wohnort: Bayreuth

Beruf: Student | Hilfswissenschaftler in der Robotik

  • Private Nachricht senden

5

30.04.2015, 23:35

Es kommt auf den Compiler an. Ich weis nicht mehr wo ich das Problem hatte und ob es überhaupt noch ein Problem ist, da die Software stets moderner wird.

Aber genrell: If any [static] library A depends on symbols defined in library B, then library A should appear first in the list supplied to the linker.
Von hier: http://stackoverflow.com/questions/45135/linker-order-gcc
I write my own game engines because if I'm going to live in buggy crappy filth, I want it to me my own - Ron Gilbert

6

01.05.2015, 02:08


Du hast im Debug Modes etwas nicht gelinkt. Vll. auch in der falschen Reihenfolge.

SFML hat eine Seite wo die Abhängigkeiten gelistet sind.

Zitat von »SFML«

You might have noticed from the table that SFML modules can also depend on one another, e.g. sfml-graphics-s.lib depends both on sfml-window-s.lib and sfml-system-s.lib. If you static link to an SFML library, make sure to link to the dependencies of the library in question, as well as the dependencies of the dependencies and so on. If anything along the dependency chain is missing, you will get linker errors.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

7

01.05.2015, 17:10

okey, es funktioniert jetzt :)

8

01.05.2015, 19:29

Der Vollständigkeit halber, woran lag es jetzt?

Die libs gar nicht gelinkt oder nur zum teil oder falsche Reihenfolge (Keine Ahnung ob die Reihenfolge eine Rolle spielt) oder was ganz anderes?
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

Werbeanzeige