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

Uruchamianie SFML poza kompilatorem.

Object Storage Arubacloud
+1 głos
358 wizyt
pytanie zadane 20 stycznia 2017 w C i C++ przez Maciek123233 Gaduła (3,400 p.)

Witam, od kilku dni nie mogę sobie poradzić z bardzo dużym problemem, mianowicie mój program C++/SFML nie uruchamia się poza aplikacją Code::Blocks. Tak to wygląda:

po dodaniu plików:

Widziałem kilka poradników jak zrobić, żeby to działało, ale nic u mnie nie działa, naprawdę zadaje pytania na tym forum w ostateczności.

 

Kompilator

Compiler settings -> Selected compiler -> GNU GCC Compiler

Jeśli chodzi o SFML to dodałem tylko:

Compiler settings -> Linker settings -> sfml-graphics-d,sfml-main-d,sfml-network-d,sfml-system-d,sfml-window-d

Compiler settings -> Search directories -> Compiler dodałem: C:\Users\Maciek\SFML-2.3.2\include

Compiler settings -> Search directories -> Linker dodałem: C:\Users\Maciek\SFML-2.3.2\llib

A przy instalacji Code::Blocks wybrałem:

codeblocks-16.01mingw-setup.exe

 

Wie ktoś co i gdzie dodać żeby to zadziałało?

 

komentarz 20 stycznia 2017 przez 10kw10 Pasjonat (22,880 p.)
moze to cos z kodem nie tak, wrzuc go tu
komentarz 20 stycznia 2017 przez Pajdas Mądrala (5,930 p.)
Źle dodałeś biblioteki
komentarz 20 stycznia 2017 przez Maciek123233 Gaduła (3,400 p.)
Kod jest dobry, ponieważ otwiera się w Code::Blocks, a co do bibliotek to nie rozumiem o co chodzi.
komentarz 20 stycznia 2017 przez niezalogowany

Uruchamianie SFML poza kompilatorem.

Merytorycznie to zdanie nie ma sensu, ponieważ kompilator nie zajmuje się uruchamianiem programów, tylko zamienianiem kodu wysokopoziomowego na kod maszynowy

mój program C++/SFML nie uruchamia się poza aplikacją Code::Blocks. Tak to wygląda:

Nie napisałeś tego wprost, ale CB nie jest kompilatorem, CB to IDE. Kompilatorem jest np GCC (którego pewnie używasz)

4 odpowiedzi

0 głosów
odpowiedź 20 stycznia 2017 przez niezalogowany

Tak to jest jak się nie czyta tutoriala: http://www.sfml-dev.org/tutorials/2.4/start-cb.php

It is important to link to the libraries that match the configuration: "sfml-xxx-d" for Debug, and "sfml-xxx" for Release. A bad mix may result in crashes

A więc, aby wszystko zaczęło działać u innych osób, to musisz stworzyć build'a w którym linkujesz biblioteki przeznaczone do wersji Release, a więc np sfml-graphics.lib, itd.

Dodatkowo jeżeli linkujesz biblioteki dynamicznie, to musisz dostarczyć także odpowiednie pliki dll, np sfml-graphics.dll

Zwróć szczególną uwagę na końcówki nazw, te posiadające "-d" na końcu nazwy są dla trybu Debug!

komentarz 20 stycznia 2017 przez Maciek123233 Gaduła (3,400 p.)

sfml-XXX-d -> sfml-XXX

komentarz 20 stycznia 2017 przez niezalogowany
Ale dalej robisz to dla Debug, a nie dla konfiguracji do Release...
0 głosów
odpowiedź 27 czerwca 2017 przez Milesq Nałogowiec (32,020 p.)
Miałem ten sam problem. Chodzi o złe pliki dll(libgcc i ten drugi)

Zrób tak do folderu bin/debug(lub relase) w którym masz gotową apkę dodaj pliki .dll z SFML. Są to SFML-window itd. Jest tam jeszcze opengl dodaj je wszystkie do folderu(tylko do trybu relase dodawaj pliki BEZ końcówki -d te dodaj do folderu debug i do obu folderów dodaj opengl) i wtedy nadal wyświetli ci błąd o 2 brakujących dll. Teraz musisz je dodać ale nie byle jakie. W mój komputer wpisz nazwę najpierw jednego dll a potem drugiego. Zaczekaj aż wyszuka do końca i w przy każdej wyszukanej pozycji będziesz miał ścieżkę do tego pliku. Skopiuj te z folderu codeblock'a a konkretnie z MiNGW. Powinno działać. Tylko pamiętaj SKOPIUJ A NIE WYTNIJ to mają być te dll z folderu w którym instalowałeś code block.

Inne niby są ale jak pisze windows "nie. Znaleziono procedury wejścia" czy coś w tym stylu

 

Jeśli problem zniknął oznacz najlepszą odp. I zamknij pytanie :)
–1 głos
odpowiedź 20 stycznia 2017 przez obl Maniak (51,280 p.)

W trybie debug kompilujesz dla siebie (dla programisty), żeby kompilator udostępniał ci dodatkowych funkcjonalności związanych z wykrywaniem błędów. W takim trybie dołączane są dodatkowe biblioteki. Powinieneś przekompilować program w trybie release i dla tego trybu musisz odpowiednie biblioteki dll dla SFML-a ustawić. Nie używam CodeBlock więc ci za wiele w kwestii ustawienia tego nie doradzę.

komentarz 20 stycznia 2017 przez niezalogowany
Nie do końca, w trybie debug używane biblioteki mają dodatkowe symbole do debugowania, nie ma żadnych dodatkowych libów
–1 głos
odpowiedź 20 stycznia 2017 przez niezalogowany
Dopisz -static-libgcc w other linker options i powinno śmigać.

http://cpp0x.pl/kursy/Kurs-SFML-2-x-C++/Instalacja-i-konfiguracja/Konfiguracja-SFML-2-0-Code-Blocks/464
Tu masz obrazkowo pokazane

Podobne pytania

+1 głos
1 odpowiedź 674 wizyt
pytanie zadane 24 sierpnia 2016 w C i C++ przez MrRozgunek Użytkownik (810 p.)
+1 głos
1 odpowiedź 216 wizyt
pytanie zadane 27 marca 2017 w C i C++ przez Milesq Nałogowiec (32,020 p.)
0 głosów
1 odpowiedź 453 wizyt
pytanie zadane 31 grudnia 2018 w C i C++ przez Dani3l Bywalec (2,160 p.)

92,555 zapytań

141,402 odpowiedzi

319,539 komentarzy

61,938 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!

...