kolejny error
taki błąd pojawia się podczas wykonywania make w linuxie.
a dokładniej:
music_manager.cpp: In member function 'bool MusicManager::exists_music(const string&):
music_manager.cpp:69:74: error: no matching function for call to 'make_pair(const string&, MusicManager::MusicResource)'
std::make_pair<std::string, MusicResource> (file, MusicResource()));
jak sobie z nim poradzić? W sieci znalazłem parę podobnych przypadków, ale nic z tego nie kumam A chciałbym sobie skompilować grę.
A tak wygląda ta funkcja w music_manager.cpp:
bool
MusicManager::exists_music(const std::string& file)
{
if(!audio_device)
return true;
// song already loaded?
std::map<std::string, MusicResource>::iterator i = musics.find(file);
if(i != musics.end()) {
return true;
}
Mix_Music* song = Mix_LoadMUS(file.c_str());
if(song == 0)
return false;
// insert into music list
std::pair<std::map<std::string, MusicResource>::iterator, bool> result =
musics.insert(
std::make_pair<std::string, MusicResource> (file, MusicResource()));
MusicResource& resource = result.first->second;
resource.manager = this;
resource.music = song;
return true;
}
–EDIT
poradziłem sobie w końcu jakoś z wszystkimi błędami, gra się skompilowała (SuperTux 0.1.3), ale… po uruchomieniu w Windowsie tylko na chwilę przełącza się na pełny ekran, po czym zamyka. Nie wiem czemu. Żadnego komunikatu, nic… A męczyłem się z tym 2 dni
Uruchom przez konsolę, może tam zostają jakieś ślady. Albo skompiluj z flagami -g3 i uruchom przez GDB, dostaniesz konkretne info gdzie się sypie. Możesz przy okazji wspomóc twórców wskazując problem
Wiele się przy czymś takim można nauczyć, polecam.
to już zrobiłem… Tzn. tak mi się wydaje - z tego co wygooglałem, robi się to przez make CXXFLAGS="-g3". Enyłej, chyba wywalę to całe MinGW i postawię wszystko po kolei na czysto, zwracając większą uwagę na różne warningi. Kiedyś, jeszcze pod XP, SuperTux 0.1.3 kompilował mi się bez żadnych zgrzytów, więc nie wiem, skąd nagle teraz wzięły się te wszystkie błędy.
–EDIT.
Dobra, po kolejnym dniu kombinowania wyszło, że skompilowana gra działa jednak prawidłowo - problem leżał w bibliotekach, konkretnie SDL_mixer.dll i SDL_image.dll. Po podmienieniu ich na te mieszczące się w pakiecie z binarką gra działa bez problemów.