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

SFML klasa Image błąd w zapisie obrazu do pliku

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
343 wizyt
pytanie zadane 18 stycznia 2018 w C i C++ przez Milesq Nałogowiec (32,020 p.)

Prosty kod

#include<windows.h>
#include<SFML/Graphics.hpp>

using namespace std;
using namespace sf;

int main() {
Image img;
img.create(30, 30, Color::Black);
for(int a=8;a<20;a++)
{
   img.setPixel(a, a, Color::White);
}
img.saveToFile("img.png");
system("pause");
return 0;
}

cała biblioteka działa dobrze tylko przy tej funkcji jest problem, dlaczego?

wersja biblioteki- 2.4.2

kompilator mingw32

IDE code block

błąd 

||=== Build: Debug in SFML (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `main':|
main.cpp|48|undefined reference to `sf::Image::saveToFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'|
||error: ld returned 1 exit status|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 2 second(s)) ===|

błąd mówi że nie widzi  tej funkcji

tymczasem code blocks w podpowiedziach pokazuje ją

co mogło się stać?

1 odpowiedź

+1 głos
odpowiedź 18 stycznia 2018 przez criss Mędrzec (172,590 p.)
wybrane 23 marca 2018 przez Milesq
 
Najlepsza

Linkujesz statycznie czy dynamicznie? Jeśli statycznie, to spróbuj jak będzie przy dynamicznym.
Pliki nagłówkowe sfml i binarki sfml na pewno pochodzą z tej samej wersji?
Linkujesz właściwie libki do danej konfiguracji (Debug/Release)?
(dwa ostatnie pytania troche desperackie, mało prawdopodobne, żeby to sprawiało problemy nawet jeśli)

Znalazłem też takie coś. Cytuje:

If you get linker errors about undefined references to symbols that involve types in the std::__cxx11 namespace or the tag [abi:cxx11] then it probably indicates that you are trying to link together object files that were compiled with different values for the _GLIBCXX_USE_CXX11_ABI macro. This commonly happens when linking to a third-party library that was compiled with an older version of GCC. If the third-party library cannot be rebuilt with the new ABI then you will need to recompile your code with the old ABI.

(src) 

Spróbuj wyłączyć c++11 (i wyższe). SFML jest pisany w c++03 i z taką flagą pewnie zostały skompilowane binarki których używasz i z tego wynikają problemy. W każdym razie cokolwiek by się nie stało - zawsze najlepiej jeśli samodzielnie skompilujesz sfml dokładnie tym samym kompilatorem z którym będziesz używać sfml.

błąd mówi że nie widzi  tej funkcji

tymczasem code blocks w podpowiedziach pokazuje ją

Edytor nie ma żadnego związku z kompilacją czy linkowaniem. 

komentarz 18 stycznia 2018 przez Milesq Nałogowiec (32,020 p.)
Więc tak faktycznie trochę desperacko ;), nie widzę żadnego powodu dla którego mogłoby nie działać zwłaszcza że reszta działa i działała. Linkuję dynamicznie.

wyłączę C++11 zobaczymy...
komentarz 18 stycznia 2018 przez Milesq Nałogowiec (32,020 p.)
hmm nie działa. spróbuję pobrać nowszą wersję SFML'a
1
komentarz 18 stycznia 2018 przez criss Mędrzec (172,590 p.)
Skompiluj sfml u siebie. Wystarczy, ze zainstalujesz cmake-a, reszta praktycznie zrobi się sama.
komentarz 18 stycznia 2018 przez Milesq Nałogowiec (32,020 p.)
A jak już mam cmake zainstalowanego to co mam zrobić?

jak wchodzę w cmake to do pierwszego inputa ""where is the source code"" a do tego drugiego jakiś folder na pulpicie

potem wszystko zostawiam jak jest i naciskam "generate" i dostaję błąd

error in configuration proccess, project files may be invalid
komentarz 18 stycznia 2018 przez criss Mędrzec (172,590 p.)
Wybrałeś odpowiedni kompilator/IDE? Ten błąd to cały log?
komentarz 18 stycznia 2018 przez Milesq Nałogowiec (32,020 p.)

cały błąd

komentarz 18 stycznia 2018 przez criss Mędrzec (172,590 p.)
Nie jest cały, widze ze jest zescrollowane w dół, ale nieważne.. Widze też "Current Generator: Visual Studio 15 2017 Win64". I widze też, że napisałeś, że korzystasz z c::b i mingw.

Podobne pytania

0 głosów
3 odpowiedzi 501 wizyt
pytanie zadane 18 września 2016 w C i C++ przez Strzep Nowicjusz (120 p.)
0 głosów
1 odpowiedź 319 wizyt

93,187 zapytań

142,203 odpowiedzi

322,018 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2365p. - dia-Chann
  2. 2326p. - Łukasz Piwowar
  3. 2315p. - Łukasz Eckert
  4. 2301p. - CC PL
  5. 2269p. - Tomasz Bielak
  6. 2235p. - Łukasz Siedlecki
  7. 2232p. - rucin93
  8. 2169p. - Marcin Putra
  9. 2164p. - Adrian Wieprzkowicz
  10. 2006p. - Michal Drewniak
  11. 1950p. - Anonim 3619784
  12. 1909p. - Dawid128
  13. 1901p. - Mikbac
  14. 1744p. - rafalszastok
  15. 1487p. - Michał Telesz
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...