• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Błąd podczas instalacji biblioteki SFML

42 Warsaw Coding Academy
0 głosów
622 wizyt
pytanie zadane 30 grudnia 2015 w C i C++ przez lukasz_m Obywatel (1,380 p.)
zamknięte 30 grudnia 2015 przez Eryk Andrzejewski
Witam

Jestem w trakcie instalowania biblioteki SFML na Code:Blocksie - wszystko zrobiłem zgodnie z instrukcją na stronie

i podczas pierwszego testu pojawia się komunikat:

"Nie znaleziono punktu wejścia procedury _gxx_personality_v0 w bibliotece

sfml-graphics-d-2.dll"

Zgodnie z instrukcją przekopiowałem pliki .dll biblioteki SFML do katalogu programu z plikiem .exe

Może ktoś na forum już miał taki problem?
komentarz zamknięcia: Proszę zapoznać się z FAQ

2 odpowiedzi

0 głosów
odpowiedź 30 grudnia 2015 przez DarkEliat Bywalec (2,810 p.)

To takie 2 instrukcje, które kiedyś napisałem dla siebie. Jeśli nie rozumiesz mało szczegółowej, przeczytaj szczegółową :)

Mało szczegółowa:
Do linkera/Link Libraries:
- ścieżka do pliku sfml-graphics.dll w naszej bibliotece
- ścieżka do pliku sfml-system.dll w naszej bibliotece
- ścieżka do pliku sfml-window.dll w naszej bibliotece
i ewntualnie plik sfml-audio.dll z naszej biblioteki

Do Linkera/Other Linker options:
-lsfml-system

Przechodzimy do Search Directories i :
Prechodzimy do Compiler i podajemy:
- ściężkę do folderu include naszej biblioteki

Prechodzimy do Linker i podajemy:
- ściężkę do folderu lib naszej biblioteki

 

 

Szczegółowa:
Tworzenie Projektu:
File -> New -> Project -> Empty Project -> Nazwa Projeku -> Kończenie tworzenia Projektu

Tworzenie pliku main.cpp:
File -> New -> File -> Source .CPP -> Zaznaczmy RELEASE i DEBUG -> kończenie dod. pliku

Przypinanie biblioteki do projektu:
Projekt -> Build options -> Wybieramy nazwę projektu, nie DEBUG ani RELEASE (lewy górny róg) -> 

Linker Settings -> Link Libraries -> ADD -> Wybieramy położenie naszej biblioteki -> Wybieramy z plików pliki tj. sfml-window.dll, sfml-graphics.dll, sfml-system.dll i ewentualnie plik sfml-audio.dll -> OK  ->  

Other linker options -> -lsfml-system -> 

Search directories -> Compiler - > podajemy ściężkę do naszej biblioteki/include -> Linker -> podajemy ściężkę do naszej biblioteki/lib -> OK 

 

P.S. Jeśli coś jest nie jasne to pisz. Odnośnie tego, że podajemy położenie biblioteki, po ściągnięciu jej wypakuj ją np. do folderu użytkownika, a później w C::B ją podepnij. A jeśli od razu chcesz przetestować działanie biblioteki to użyj tego kodu :

#include <SFML/Window.hpp> // lub #include "SFML/Window.hpp" 
#include <SFML/Graphics.hpp> // lub #include "SFML/Graphics.hpp"

using namespace std;
using namespace sf;

Event zdarzenie;

int main( int argc, char ** argv )
{
    RenderWindow oknoAplikacji;

    oknoAplikacji.Create( VideoMode( 800, 600, 32 ), "SFML #1 - Podstawy" ); // tryb okienkowy

    //oknoAplikacji.Create( VideoMode( 800, 600, 32 ), "SFML #1 - Podstawy", Style::Fullscreen ); // tryb pelnoekranowy


    while( oknoAplikacji.IsOpened() )
    {
        while( oknoAplikacji.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == Event::Closed )
            {
                oknoAplikacji.Close(); // zamykanie okna
            }
            //tu obsługa zdarzeń
        }

        //tu Twój kod
        oknoAplikacji.Display();
    }

    return 0;
}

 

komentarz 30 grudnia 2015 przez lukasz_m Obywatel (1,380 p.)
Rozumiem, że w zakładce Linker Settings dodajemy biblioteki  tylko do

DEBUG i do RELEASE ? w przypadku DEBUG te z literką d na końcu

np. libsfml-graphics-s-d
komentarz 30 grudnia 2015 przez DarkEliat Bywalec (2,810 p.)
Mnie DEBUG i/lub RELEASE wystarcza. W starszej wersji biblioteki (SFML 1.6) nie trzeba używać plików -d, wydaje mi się, że w wersji 2.0 też tak można, ale jeśli nie działa to spróbuj jak mówisz (czyli z plikami -d). Napisz czy wszystko działa.
komentarz 31 grudnia 2015 przez lukasz_m Obywatel (1,380 p.)
Tak, już działa dzięki za pomoc:)
komentarz 5 stycznia 2016 przez DarkEliat Bywalec (2,810 p.)
Miło mi, że mogłem pomóc.
0 głosów
odpowiedź 30 grudnia 2015 przez MetGang Nałogowiec (34,360 p.)

Co do tej procedury, są 2 możliwe rozwiązania:

1. Nowszy kompilator (zapewne używasz C::B 13.12 z gcc 4.7.1 i SFML 2.1 gdyż nowsza nie zadziała)
2. Dopisanie na początku void* __gxx_personality_v0; void* _Unwind_Resume;

komentarz 30 grudnia 2015 przez lukasz_m Obywatel (1,380 p.)

Tak, używam Code::Blocks 13.12, 

a kompilator taki:

=== TDM-GCC Compiler Suite for Windows ===
---        GCC 4.6 & 4.7 Series        ---
***   Standard MinGW 32-bit Edition    ***

SFML 2.0  GCC 4.7 MinGW (DW2) - 32-bit

 

 

komentarz 30 grudnia 2015 przez MetGang Nałogowiec (34,360 p.)
No to polecam drugą solucję.
komentarz 30 grudnia 2015 przez lukasz_m Obywatel (1,380 p.)
edycja 31 grudnia 2015 przez lukasz_m
Dzięki za pomoc, ale już mi się udało to ogarnąć po prostu źle zlinkowałem pliki

Podobne pytania

0 głosów
2 odpowiedzi 178 wizyt
0 głosów
0 odpowiedzi 164 wizyt
pytanie zadane 24 kwietnia 2020 w C i C++ przez Michał Wierzbiński Użytkownik (630 p.)
0 głosów
1 odpowiedź 137 wizyt
pytanie zadane 7 listopada 2018 w C i C++ przez program naczelny Gaduła (3,320 p.)

93,382 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,740 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...