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

SFML po skompilowaniu plik .exe Nie działa !

Object Storage Arubacloud
–1 głos
498 wizyt
pytanie zadane 11 czerwca 2017 w C i C++ przez Tomek Kozioł Obywatel (1,740 p.)
Witam mam problem z SFML.

Najlpier napisze co próbowałem zrobić aby działało:

-skompilowałem biblioteke z source code

-Testowałem wszystkie wersje pod GCC

i tylko z source code mi kompilowało ale plik .exe nie działał .

Nikt takiego problemu nie ma chodzi o .DLL bo program nie potrafi znalezc funkcji w .DLL.

Juz piszę bład : Nie znaleziono punktu wejścia procedury _ZNKSt7__cxx1112basic_stringlcSt11char_traitslcESalcEE7compareEPKc w bibliotece sfml-window-2.dll . Podobne żeczy są po naciśnięciu o.  próbowałem kompilować w VS(wszystkie od 08 do 15), dev c++, code::blocks więc winna nie stoi w kompilatorze ktoś pomoże jak naprawić.

 

 

PS<<Kod taki sam jak w tutorialu na stronie sfml
komentarz 11 czerwca 2017 przez Gynvael Coldwind Nałogowiec (27,530 p.)
Jaką wersję GCC masz?

Ogólna sugestia: poszukaj w katalogach GCC który posiadasz pliku .dll, który zawiera string "_ZNKSt7__cxx1112basic_stringlcSt11char_traitslcESalcEE7compareEPKc" (ten, który podałeś). Jak już znajdziesz, to skopiuj tą DLLkę do katalogu z .exe który generujesz (ew. do katalogu w którym masz sfml-window-2.dll który używasz).

Powyższe powtarzaj póki tego typu błędy wyskakują.

Jeżeli nie znajdziesz .dll z takim stringiem, spróbuj inną wersję SFML.

2 odpowiedzi

+1 głos
odpowiedź 12 czerwca 2017 przez j23 Mędrzec (194,920 p.)

Dodaj katalog <MingGW>\bin do zmiennej środowiskowej PATH.

komentarz 12 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
Dodałem i tak nie działa!
komentarz 12 czerwca 2017 przez j23 Mędrzec (194,920 p.)
Bibliotekę i aplikację kompilujesz na tym samym kompilatorze?
komentarz 12 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
Tak
komentarz 12 czerwca 2017 przez j23 Mędrzec (194,920 p.)

Hmm, ciekawe.

 

Jesteś pewny, że ścieżkę do katalogu bin poprawnie ustawiłeś?

komentarz 12 czerwca 2017 przez j23 Mędrzec (194,920 p.)

Sprawdziłem u siebie. I wszystko śmiga jak należy (użyłem jakiegoś przykładu z OGL-em).

  • CMakem wygenerowałem makefile dla MinGW (nic nie zmieniałem w ustawieniach, domyślnie jest tam ustawiona wersja Release, czyli git.)
  • skompilowałem
  • stworzyłem nowy projekt w CodeLite
  • poustawiałem ścieżki, biblioteki i preprocesor
  • skompilowałem

Jeśli podobnie zrobiłeś, powinno Ci wszystko śmigać.

0 głosów
odpowiedź 18 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
Naprawiłem wystarczyło nie dożucać .dll SFML-a. Jak dożucałem to wtedy wariuje mi. A ktoś pomoże z linkowaniem dynamicznym bo mój kompilator wszystko linkuje statycznie nawet SDL2 i allegro5 ktoś wie jak to naprawić ?
komentarz 18 czerwca 2017 przez j23 Mędrzec (194,920 p.)

DoRZucać...

 

Co, sam linkuje statycznie? Jeśli dodałeś do projektu biblioteki statyczne, to Ci takie będzie linkował.

komentarz 18 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
Dodałem dynamiczne -lsfml-window,-lsfml-system i takie . WOGÓLE NIE DODAŁEM DYREKTYWY SFML-STATIC kompilator na moim kompie sam linkuje .dll do .exe wie ktoś jak to naprawić ?
komentarz 18 czerwca 2017 przez j23 Mędrzec (194,920 p.)

SFML_STATIC nie ma wpływu na sposób linkowania biblioteki - dodaje lub usuwa  __declspec(dllexport) i __declspec(dllimport) w odpowiednich miejscach kodu.

 

Wyczyść projekt i przebuduj go.

 

Jaka wersja MinGW?

komentarz 18 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
mam code::blocks w wersji 13.11 bo w innej nie działa a kompilator najnowszy sam aktualizowałem pod code::blocks
komentarz 18 czerwca 2017 przez j23 Mędrzec (194,920 p.)
Podsumowując: kiedy wrzucisz pliki dll do katalogu z exekiem, program przestaje działać, ale jak nie będzie tam żadnej biblioteki, to działa. Dobrze rozumiem problem?
komentarz 18 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
tak. A ja chcem linkować dynamicznie a nie statycznie !!!
komentarz 18 czerwca 2017 przez j23 Mędrzec (194,920 p.)

Tyle tylko, że jakby aplikacja linkowała statycznie, do wrzucenie dll-ek do katalogu nie miałoby żadnego znaczenia i nie powodowałoby żadnej reakcji. Mnie to wygląda tak, że aplikacja łączy dynamicznie, tylko ładuje dll-ki z innego miejsca (np. jakiegoś katalogu systemowego), a Ty - jakimś cudem - wrzucasz jej niewłaściwe biblioteki do katalogu z exekiem.

 

Użyj Dependency Walkera, żeby zobaczyć jakie biblioteki aplikacja ładuje. Jestem prawie pewien, że będą tam biblioteki SFML-a.

komentarz 18 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
Ja nie instalowałem SFML do systemu tylko do code::blocks do folderu mingw. Na innych kompach tak samo jest
komentarz 18 czerwca 2017 przez j23 Mędrzec (194,920 p.)

Użyj Dependency Walkera...

komentarz 19 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
Biblioteki ma w sobie sprawdzałem
komentarz 19 czerwca 2017 przez j23 Mędrzec (194,920 p.)
Użyłeś programu o którym pisałem?
komentarz 19 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
Tak
komentarz 19 czerwca 2017 przez j23 Mędrzec (194,920 p.)
I co, nie ma tam tych dll-ek?
komentarz 19 czerwca 2017 przez Tomek Kozioł Obywatel (1,740 p.)
Tak a jak dożucam to zastępuje funkcje innymi funkcjami
komentarz 19 czerwca 2017 przez j23 Mędrzec (194,920 p.)
Nie rozumiem...

Udostępnij gdzieś tego swojego exeka

Podobne pytania

0 głosów
2 odpowiedzi 571 wizyt
pytanie zadane 28 sierpnia 2016 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
0 głosów
3 odpowiedzi 301 wizyt
pytanie zadane 25 sierpnia 2015 w C i C++ przez patryk16 Obywatel (1,080 p.)
0 głosów
4 odpowiedzi 508 wizyt

92,536 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...