Scheitern beim Nutzen von SFML mit Code::Blocks unter Windows



  • Hallo Miteinander,
    schon seit praktisch Anbeginn der Zeit versuche ich vergeblich SFML mit Code::Blocks zu benutzen. Ich bin einem Tutorial gefolgt und habe nun 3 Dateien in einem Ordner. Der Tutorial Link, falls das hilft

    codeblocks-17.12mingw-nosetup
    projekt1
    SFML-2.4.1-windows-gcc-4.9.2-tdm-32-bit

    Die 11 Dateien, wie z.B. sfml-window-2 hab ich auch in den Debug Ordner meines SFML Projektes kopiert.

    Ich habe das typische Test-Skript eingefügt aber bekomme beim Compilieren immer diese Fehlermeldungen:

    undefined reference to std::locale::locale()| undefined reference tostd::locale::~locale()'|
    undefined reference to std::allocator<char>::allocator()'| undefined reference tostd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'|
    undefined reference to_imp___ZN2sf7Texture12loadFromFileERKNSt7__ cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_4RectIiEE'| undefined reference tostd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'|
    undefined reference to std::allocator<char>::~allocator()'| undefined reference tostd::locale::~locale()'|
    undefined reference to std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'| undefined reference tostd::allocator<char>::~allocator()'|
    obj\Debug\main.o||In function ZNSt7__cxx1112basic_stringIjSt11char_traitsIjESaIjEE10_M_destroyEj':| undefined reference to__cxa_call_unexpected'|
    obj\Debug\main.o||In function ZN9__gnu_cxx13new_allocatorIjE10deallocateEPjj':| undefined reference tooperator delete(void*)'|
    obj\Debug\main.o:main.cpp:(.rdata_ZTVN2sf8DrawableE[__ZTVN2sf8DrawableE]+0x10)||undefined reference to `__cxa_pure_virtual'| obj\Debug\main.o:main.cpp:(.rdata_ZTIN2sf8DrawableE[__ZTIN2sf8DrawableE]+0x0)||undefined reference to vtable for __cxxabiv1::__class_type_info'| obj\Debug\main.o:main.cpp:(.eh_frame+0x13)||undefined reference to__gxx_personality_v0'|
    obj\Debug\main.o:main.cpp:(.eh_frame_ZNSt7__cxx1112basic_stringIjSt11char_traitsIjESaIjEED1Ev+0x13)||undefined reference to `__gxx_personality_v0'| obj\Debug\main.o:main.cpp:(.eh_frame_ZNSt7__cxx1112basic_stringIjSt11char_traitsIjESaIjEE10_M_destroyEj+0x13)||undefined reference to `__gxx_personality_v0'|

    Ich habe in einem Forum gelesen, dass es vielleicht etwas mit nicht übereinstimmenden Versionen zu tun haben könnte?

    Danke für jegliche Hilfe!

    Daniel



  • Bist Du sicher, daß Du den tdm-gcc in Version 4.9.2 installiert hast?

    Sourceforge - tdm-gcc-4.9.2.exe - Häkchen bei "Check for updated files on the TDM-GCC server" wegmachen.

    Wenn es nicht unbedingt Code::Blocks mit gcc sein muss: sfml gibt es auch ganz schmerzfrei als NuGet-Packages für Visual Studio.



  • Super danke es funktioniert. Ich habe die Datei von dir zu MinGW unbenannt und die Ursprüngliche gelöscht. Vielen Dank



  • @daniel Ich habe keine Ahnung. Vielleicht beschreibst Du für andere die evtl. dasselbe Problem haben ein bisschen detaillierter was Du gemacht gast. Du musst den tdm-gcc vom link von mir zumindest installiert haben und Code::Blocks verklickert haben wo er zu finden ist. Eine Datei einfach umzubenennen sollte an Deiner Lage nichts geändert haben.



  • @Swordfish Ja beim entzippen des Codeblocks Ordner wird ein Ordner namens MinGW erstellt, der Compiler auf den Codeblocks standartmäßig zugreift. Den hab ich gelöscht und den gedownloadeten zu MinGW unbenannt und dann den Cblauncher gestartet, welcher den Ordner für den Normalen GCC compiler hält



  • @daniel sagte in Scheitern beim Nutzen von SFML mit Code::Blocks unter Windows:

    Den hab ich gelöscht und den gedownloadeten zu MinGW unbenannt

    Ähm. Ich habe den Link zu einem Installer gepostet, draus kannst Du garkein Verzeichnis machen.

    Nur nebenbei:

    @daniel sagte in Scheitern beim Nutzen von SFML mit Code::Blocks unter Windows:

    standartmäßig

    Standarth schreibt man mit "th".

    Ich werde versuchen das Ganze nachzuvollziehen und poste später eine Anleitung. Ne ernsthaft, ich weigere mich. Ich habe keinen Bock auf das Rumgefrickle. Installiere VS 2019, installiere die NuGet-Packages und werde glücklich.



  • @Swordfish Standard schreibt man mit "d". Doch, der Installer erschafft eine Datei. Und glücklich bin ich schon, es funktioniert ja


Anmelden zum Antworten