SFML und memcpy, memset, ... ("wurde in diesem Gültigkeitsbereich nicht definiert") [gelöst/solved]



  • Hallo zusammen,

    um ein bisschen in die Spieleprogrammierung reinzuschnuppern habe ich mir das SDK (Version 1.3 für Linux) heruntergeladen und wollte nun die entsprechenden Bibliotheken installieren:

    make sfml
    

    lieferte (unter anderem) folgendes Ergebnis:

    IPAddress.cpp:150: Fehler: »memset« wurde in diesem Gültigkeitsbereich nicht definiert
    IPAddress.cpp: In static member function »static sf::IPAddress sf::IPAddress::GetPublicAddress()«:
    IPAddress.cpp:201: Fehler: »memset« wurde in diesem Gültigkeitsbereich nicht definiert
    IPAddress.cpp:237: Fehler: »strcat« wurde in diesem Gültigkeitsbereich nicht definiert
    

    Nachdem ich nun die Zeilen

    #include <cstring>
    using std::memcpy;
    using std::memset;
    using std::strcat;
    

    so ziemlich jeder Quelldatei, in welcher sich über die fehlenden Bezeichner beschwert wurde, hinzufügte, ließ sich SFML übersetzen und korrekt installieren.

    Ich gehe schwer davon aus, dass die Entwickler von SFML wussten, was sie taten. Folglich muss das Problem auf meiner Seite zu beheben sein. Ich kann mir allerdings keinen Reim daraus bilden, wo ich überhaupt ansetzen muss.

    Folgende Informationen kann ich noch anbieten:

    (...)$ uname -rvo && g++ --version
    2.6.25-ARCH #1 SMP PREEMPT Sat Jun 14 18:07:19 CEST 2008 GNU/Linux
    g++ (GCC) 4.3.1
    (...)
    

    Grüße... Heiko



  • gcc ab 4.3 hat headerdependencies aufgeräumt. das gibt mit sehr vielen projekten probleme. diesesmal liegt der fehler wirklich beim entwickler 😉



  • In gewisser Weise freut es mich, dass es mal nicht an meinem einem lag. Ich hoffe, dieser Thread dient dann wenigstens noch als "Bastelanleitung" um derart Probleme zu beheben.

    Danke für die Info.

    Grüße... Heiko


Anmelden zum Antworten