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

10.04.2012, 19:18

Linux SFML Compilieren

Hey Leute,

ich habe leider ein kleines Problem:

Ich versuche gerade SFML zum Laufen zu kriegen, habe also das Full_SDK_Packet runtergeladen und "make", "sudo make install" ausgeführt. Alles ohne probleme.

Nun versuche ich das Beispielprogramm:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <SFML/System.hpp>
#include <iostream>

int main()
{
    sf::Clock Clock;
    while (Clock.GetElapsedTime() < 5.f)
    {
        std::cout << Clock.GetElapsedTime() << std::endl;
        sf::Sleep(0.5f);
    }

    return 0;
}


Mit "g++ clock.cpp" bekomme ich:

Quellcode

1
2
3
4
5
clock.cpp:(.text+0x11): undefined reference to `sf::Clock::Clock()'
clock.cpp:(.text+0x1f): undefined reference to `sf::Clock::GetElapsedTime() const'
clock.cpp:(.text+0x4c): undefined reference to `sf::Sleep(float)'
clock.cpp:(.text+0x58): undefined reference to `sf::Clock::GetElapsedTime() const'
collect2: ld returned 1 exit status


Das gleiche kommt auch wenn ich mit CodeBlocks das machen will. Habe natürlich bei CodeBlocks bei den Linker settings den "include" und "lib" Ordner angegeben.

2

11.04.2012, 08:27

Das Verzeichnis zu den Libs anzugeben reicht nicht, du musst diese auch noch explizit linken lassen. Wie das mit CodeBlocks genau geht, kann ich dir nicht sagen, aber da wirst du was finden ;)

3

11.04.2012, 09:11

Ich habe dem Linker gesagt wo er den Ordner findet. Mit dem "#include<SFML/System.hpp" gibt es auch kein Problem. Er will nur das "sf::" nicht.

4

11.04.2012, 09:12

Du musst ihm aber noch sagen, dass er sf-system.lib und sf-main.lib linken soll. ;)

5

11.04.2012, 11:29

Linken:

Rechtsklick auf das Projekt (linke Leiste) => Properties... => Project Settings => Project's build options... => Linker settings => Add => Dann die .a von der SFML auswählen (z.B. libsfml-main-d.a)


Include Pfad:

Rechtsklick auf das Projekt (linke Leiste) => Properties... =>
Project Settings => Project's build options... => Search directories
=> Compiler => Add => Dann den Include Order Pfad angeben (z.B. C:/SFML/include/)

Werbeanzeige