Bon alors ce code a la particularité de contenir un nombre apparemment inépuisable de bugs,
j'en ai résolu pas mal(voir ma "pull request"), mais à la fin du make, quand il semble que enfin la compilation est terminée, il me dit qu'il ne trouve pas les bibliothèques SDL2_image et SDL2_mixer qu'il cherche avec le -l.
Donc apparemment je n'ai pas ces bibiliothèques (ce qui m'intrigue), et même si j'essaie de compiler sans les bibliothèques ou que je les inclue en local dans la compilation ça ma sort plein de trucs indéfinis (qui sont sans rapport avec ces bibiliothèques) :
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -o tess_client shared/crypto.o shared/geom.o shared/glemu.o shared/stream.o shared/tools.o shared/zip.o engine/aa.o engine/bih.o engine/blend.o engine/client.o engine/command.o engine/console.o engine/dynlight.o engine/grass.o engine/light.o engine/main.o engine/material.o engine/menus.o engine/movie.o engine/normal.o engine/octa.o engine/octaedit.o engine/octarender.o engine/physics.o engine/pvs.o engine/rendergl.o engine/renderlights.o engine/rendermodel.o engine/renderparticles.o engine/rendersky.o engine/rendertext.o engine/renderva.o engine/server.o engine/serverbrowser.o engine/shader.o engine/sound.o engine/stain.o engine/texture.o engine/ui.o engine/water.o engine/world.o engine/worldio.o game/ai.o game/client.o game/entities.o game/game.o game/render.o game/scoreboard.o game/server.o game/waypoint.o game/weapon.o -Lenet -lenet -L/usr/X11R6/lib -lX11 `sdl2-config --libs` -lSDL2_image -lSDL2_mixer -lz -lGL -lrt
/usr/bin/ld : ne peut trouver -lSDL2_image
/usr/bin/ld : ne peut trouver -lSDL2_mixer
collect2: error: ld returned 1 exit status
Makefile:195: recipe for target 'client' failed
make: *** [client] Error 1
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -o tess_client shared/crypto.o shared/geom.o shared/glemu.o shared/stream.o shared/tools.o shared/zip.o engine/aa.o engine/bih.o engine/blend.o engine/client.o engine/command.o engine/console.o engine/dynlight.o engine/grass.o engine/light.o engine/main.o engine/material.o engine/menus.o engine/movie.o engine/normal.o engine/octa.o engine/octaedit.o engine/octarender.o engine/physics.o engine/pvs.o engine/rendergl.o engine/renderlights.o engine/rendermodel.o engine/renderparticles.o engine/rendersky.o engine/rendertext.o engine/renderva.o engine/server.o engine/serverbrowser.o engine/shader.o engine/sound.o engine/stain.o engine/texture.o engine/ui.o engine/water.o engine/world.o engine/worldio.o game/ai.o game/client.o game/entities.o game/game.o game/render.o game/scoreboard.o game/server.o game/waypoint.o game/weapon.o -Lenet -lenet -L/usr/X11R6/lib -lX11 `sdl2-config --libs` -lz -lGL -lrt
engine/texture.o : Dans la fonction « loadsurface(char const*) » :
texture.cpp:(.text+0x1346f) : référence indéfinie vers « IMG_LoadTyped_RW »
texture.cpp:(.text+0x134a3) : référence indéfinie vers « IMG_Load »
engine/main.o : Dans la fonction « quit() » :
main.cpp:(.text+0x7c5) : référence indéfinie vers « writesave() »
engine/movie.o : Dans la fonction « recorder::start(char const*, int, int, int, bool) » :
movie.cpp:(.text+0x1ee5) : référence indéfinie vers « Mix_SetPostMix »
engine/movie.o : Dans la fonction « recorder::stop() » :
movie.cpp:(.text+0x2a8e) : référence indéfinie vers « Mix_SetPostMix »
engine/movie.o : Dans la fonction « aviwriter::aviwriter(char const*, unsigned int, unsigned int, unsigned int, bool) » :
movie.cpp:(.text._ZN9aviwriterC2EPKcjjjb[_ZN9aviwriterC5EPKcjjjb]+0x226) : référence indéfinie vers « Mix_QuerySpec »
engine/rendergl.o : Dans la fonction « gl_drawhud() » :
rendergl.cpp:(.text+0xfa0d) : référence indéfinie vers « game::gameplayhud(int, int) »
engine/sound.o : Dans la fonction « var_soundvol(ident*) » :
sound.cpp:(.text+0x1f30) : référence indéfinie vers « Mix_HaltChannel »
engine/sound.o : Dans la fonction « soundreset() » :
sound.cpp:(.text+0x2043) : référence indéfinie vers « Mix_HaltChannel »
engine/sound.o : Dans la fonction « mapsoundreset() » :
sound.cpp:(.text+0x2113) : référence indéfinie vers « Mix_HaltChannel »
engine/sound.o : Dans la fonction « syncchannel(soundchannel&) » :
sound.cpp:(.text+0x23a7) : référence indéfinie vers « Mix_FadingChannel »
sound.cpp:(.text+0x23bf) : référence indéfinie vers « Mix_SetPanning »
sound.cpp:(.text+0x23d6) : référence indéfinie vers « Mix_Volume »
engine/sound.o : Dans la fonction « stopchannels() » :
sound.cpp:(.text+0x2420) : référence indéfinie vers « Mix_HaltChannel »
engine/sound.o : Dans la fonction « stopmusic() » :
sound.cpp:(.text+0x2514) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x2520) : référence indéfinie vers « Mix_FreeMusic »
engine/sound.o : Dans la fonction « initsound() » :
sound.cpp:(.text+0x2617) : référence indéfinie vers « Mix_OpenAudio »
sound.cpp:(.text+0x2657) : référence indéfinie vers « Mix_AllocateChannels »
engine/sound.o : Dans la fonction « musicdone() » :
sound.cpp:(.text+0x268c) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x2698) : référence indéfinie vers « Mix_FreeMusic »
engine/sound.o : Dans la fonction « loadmusic(char const*) » :
sound.cpp:(.text+0x2755) : référence indéfinie vers « Mix_LoadMUSType_RW »
sound.cpp:(.text+0x27f7) : référence indéfinie vers « Mix_LoadMUS »
engine/sound.o : Dans la fonction « resetsound() » :
sound.cpp:(.text+0x293e) : référence indéfinie vers « Mix_FreeChunk »
sound.cpp:(.text+0x299e) : référence indéfinie vers « Mix_FreeChunk »
sound.cpp:(.text+0x2a03) : référence indéfinie vers « Mix_PlayMusic »
sound.cpp:(.text+0x2aae) : référence indéfinie vers « Mix_FreeChunk »
sound.cpp:(.text+0x2b0e) : référence indéfinie vers « Mix_FreeChunk »
sound.cpp:(.text+0x2b40) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x2b4c) : référence indéfinie vers « Mix_FreeMusic »
sound.cpp:(.text+0x2b70) : référence indéfinie vers « Mix_CloseAudio »
engine/sound.o : Dans la fonction « clear_sound() » :
sound.cpp:(.text+0x2c8b) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x2c97) : référence indéfinie vers « Mix_FreeMusic »
sound.cpp:(.text+0x2d0e) : référence indéfinie vers « Mix_FreeChunk »
sound.cpp:(.text+0x2d8e) : référence indéfinie vers « Mix_FreeChunk »
sound.cpp:(.text+0x2dd5) : référence indéfinie vers « Mix_CloseAudio »
engine/sound.o : Dans la fonction « stopmapsounds() » :
sound.cpp:(.text+0x2fe6) : référence indéfinie vers « Mix_HaltChannel »
engine/sound.o : Dans la fonction « clearmapsounds() » :
sound.cpp:(.text+0x307e) : référence indéfinie vers « Mix_HaltChannel »
engine/sound.o : Dans la fonction « stopmapsound(extentity*) » :
sound.cpp:(.text+0x3143) : référence indéfinie vers « Mix_HaltChannel »
engine/sound.o : Dans la fonction « reclaimchannels() » :
sound.cpp:(.text+0x33f0) : référence indéfinie vers « Mix_Playing »
engine/sound.o : Dans la fonction « syncchannels() » :
sound.cpp:(.text+0x35c9) : référence indéfinie vers « Mix_FadingChannel »
sound.cpp:(.text+0x35e1) : référence indéfinie vers « Mix_SetPanning »
sound.cpp:(.text+0x3656) : référence indéfinie vers « Mix_Volume »
engine/sound.o : Dans la fonction « stopsounds() » :
sound.cpp:(.text+0x3750) : référence indéfinie vers « Mix_HaltChannel »
engine/sound.o : Dans la fonction « stopsound(int, int, int) » :
sound.cpp:(.text+0x386f) : référence indéfinie vers « Mix_FadeOutChannel »
sound.cpp:(.text+0x387f) : référence indéfinie vers « Mix_HaltChannel »
engine/sound.o : Dans la fonction « startmusic(char*, char*) [clone .part.17] » :
sound.cpp:(.text+0x3c1b) : référence indéfinie vers « Mix_PlayMusic »
sound.cpp:(.text+0x3c41) : référence indéfinie vers « Mix_VolumeMusic »
engine/sound.o : Dans la fonction « startmusic(char*, char*) » :
sound.cpp:(.text+0x3cff) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x3d0b) : référence indéfinie vers « Mix_FreeMusic »
engine/sound.o : Dans la fonction « musicmanager(int, bool) » :
sound.cpp:(.text+0x3e0f) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x3e1b) : référence indéfinie vers « Mix_FreeMusic »
sound.cpp:(.text+0x3f0b) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x3f17) : référence indéfinie vers « Mix_FreeMusic »
sound.cpp:(.text+0x3fe3) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x3fef) : référence indéfinie vers « Mix_FreeMusic »
sound.cpp:(.text+0x40d3) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x40df) : référence indéfinie vers « Mix_FreeMusic »
sound.cpp:(.text+0x41bb) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x41c7) : référence indéfinie vers « Mix_FreeMusic »
engine/sound.o : Dans la fonction « soundsample::load(char const*, bool) » :
sound.cpp:(.text+0x4336) : référence indéfinie vers « Mix_LoadWAV_RW »
sound.cpp:(.text+0x43a0) : référence indéfinie vers « Mix_LoadWAV_RW »
engine/sound.o : Dans la fonction « playsound(int, vec const*, extentity*, int, int, int, int, int, int) » :
sound.cpp:(.text+0x483c) : référence indéfinie vers « Mix_HaltChannel »
sound.cpp:(.text+0x48bc) : référence indéfinie vers « Mix_PlayChannelTimed »
sound.cpp:(.text+0x48d5) : référence indéfinie vers « Mix_FadingChannel »
sound.cpp:(.text+0x48f3) : référence indéfinie vers « Mix_SetPanning »
sound.cpp:(.text+0x49e7) : référence indéfinie vers « Mix_HaltChannel »
sound.cpp:(.text+0x4a78) : référence indéfinie vers « Mix_Volume »
sound.cpp:(.text+0x4aa1) : référence indéfinie vers « Mix_FadeInChannelTimed »
sound.cpp:(.text+0x4abd) : référence indéfinie vers « Mix_PlayChannelTimed »
sound.cpp:(.text+0x4b28) : référence indéfinie vers « Mix_Volume »
engine/sound.o : Dans la fonction « _icmd_playsound<716>::run(int*) » :
sound.cpp:(.text+0x5775) : référence indéfinie vers « Mix_HaltChannel »
sound.cpp:(.text+0x57e1) : référence indéfinie vers « Mix_PlayChannelTimed »
sound.cpp:(.text+0x58a5) : référence indéfinie vers « Mix_FadingChannel »
sound.cpp:(.text+0x58c1) : référence indéfinie vers « Mix_SetPanning »
sound.cpp:(.text+0x592a) : référence indéfinie vers « Mix_Volume »
engine/sound.o : Dans la fonction « checkmapsounds() » :
sound.cpp:(.text+0x5cc0) : référence indéfinie vers « Mix_HaltChannel »
sound.cpp:(.text+0x5d40) : référence indéfinie vers « Mix_PlayChannelTimed »
sound.cpp:(.text+0x5d59) : référence indéfinie vers « Mix_FadingChannel »
sound.cpp:(.text+0x5d73) : référence indéfinie vers « Mix_SetPanning »
sound.cpp:(.text+0x5d91) : référence indéfinie vers « Mix_HaltChannel »
sound.cpp:(.text+0x5eb6) : référence indéfinie vers « Mix_Volume »
engine/sound.o : Dans la fonction « updatesounds() » :
sound.cpp:(.text+0x5f84) : référence indéfinie vers « Mix_HaltChannel »
sound.cpp:(.text+0x6004) : référence indéfinie vers « Mix_Playing »
sound.cpp:(.text+0x605f) : référence indéfinie vers « Mix_PlayingMusic »
sound.cpp:(.text+0x606c) : référence indéfinie vers « Mix_PausedMusic »
sound.cpp:(.text+0x624d) : référence indéfinie vers « Mix_HaltChannel »
sound.cpp:(.text+0x628b) : référence indéfinie vers « Mix_HaltMusic »
sound.cpp:(.text+0x6297) : référence indéfinie vers « Mix_FreeMusic »
sound.cpp:(.text+0x63a3) : référence indéfinie vers « Mix_FadingChannel »
sound.cpp:(.text+0x63bb) : référence indéfinie vers « Mix_SetPanning »
sound.cpp:(.text+0x63cb) : référence indéfinie vers « Mix_Volume »
engine/sound.o : Dans la fonction « var_musicvol(ident*) » :
sound.cpp:(.text+0x7e) : référence indéfinie vers « Mix_VolumeMusic »
engine/sound.o : Dans la fonction « var_soundvol(ident*) » :
sound.cpp:(.text+0x1f7a) : référence indéfinie vers « Mix_VolumeMusic »
sound.cpp:(.text+0x1fa6) : référence indéfinie vers « Mix_VolumeMusic »
engine/sound.o : Dans la fonction « setmusicvol(int) » :
sound.cpp:(.text+0x24a5) : référence indéfinie vers « Mix_VolumeMusic »
engine/sound.o : Dans la fonction « resetsound() » :
sound.cpp:(.text+0x2a2d) : référence indéfinie vers « Mix_VolumeMusic »
engine/sound.o : Dans la fonction « updatesounds() » :
sound.cpp:(.text+0x6083) : référence indéfinie vers « Mix_ResumeMusic »
engine/ui.o : Dans la fonction « UI::_icmd_uistat<3378>::run(float*, float*, unsigned int*) » :
ui.cpp:(.text+0xc9a7) : référence indéfinie vers « menustat(int) »
ui.cpp:(.text+0xca36) : référence indéfinie vers « menustat(int) »
game/ai.o : Dans la fonction « ai::update() » :
ai.cpp:(.text+0xc4f4) : référence indéfinie vers « game::aptitude_1(gameent*) »
ai.cpp:(.text+0xc525) : référence indéfinie vers « game::aptitude_3(gameent*) »
ai.cpp:(.text+0xc9e5) : référence indéfinie vers « game::aptitude_1(gameent*) »
game/ai.o : Dans la fonction « ai::think(gameent*, bool) » :
ai.cpp:(.text+0xcd80) : référence indéfinie vers « game::aptitude_1(gameent*) »
ai.cpp:(.text+0xce79) : référence indéfinie vers « game::aptitude_3(gameent*) »
ai.cpp:(.text+0xd05e) : référence indéfinie vers « game::aptitude_1(gameent*) »
ai.cpp:(.text+0xd2e5) : référence indéfinie vers « game::aptitude_1(gameent*) »
game/entities.o : Dans la fonction « entities::trypickup(int, gameent*) » :
entities.cpp:(.text+0x1d61) : référence indéfinie vers « addstat(int, int) »
entities.cpp:(.text+0x1d83) : référence indéfinie vers « addstat(int, int) »
entities.cpp:(.text+0x1dc3) : référence indéfinie vers « addstat(int, int) »
entities.cpp:(.text+0x1ddb) : référence indéfinie vers « addstat(int, int) »
game/game.o : Dans la fonction « game::otherplayers(int) » :
game.cpp:(.text+0x1b54) : référence indéfinie vers « game::updatespecials(gameent*) »
game/game.o : Dans la fonction « game::updateworld() » :
game.cpp:(.text+0x2529) : référence indéfinie vers « game::updatespecials(gameent*) »
game/game.o : Dans la fonction « game::killed(gameent*, gameent*) » :
game.cpp:(.text+0x448f) : référence indéfinie vers « addxp(int) »
game.cpp:(.text+0x449b) : référence indéfinie vers « addstat(int, int) »
game.cpp:(.text+0x44ae) : référence indéfinie vers « stat_killstreak »
game.cpp:(.text+0x44be) : référence indéfinie vers « addstat(int, int) »
game.cpp:(.text+0x44db) : référence indéfinie vers « addstat(int, int) »
game.cpp:(.text+0x47f9) : référence indéfinie vers « message3 »
game.cpp:(.text+0x4fa0) : référence indéfinie vers « message1 »
game.cpp:(.text+0x4fa6) : référence indéfinie vers « message2 »
game/game.o : Dans la fonction « game::selectcrosshair(vec&) » :
game.cpp:(.text+0x58ba) : référence indéfinie vers « game::drawmessages(int, char*, int, char*, int) »
game/render.o : Dans la fonction « game::drawhudmodel(gameent*, int, int) » :
render.cpp:(.text+0x1ccc) : référence indéfinie vers « regularflame(int, vec const&, float, float, int, int, float, float, float, int) »
game/render.o : Dans la fonction « game::rendergame() » :
render.cpp:(.text+0x4086) : référence indéfinie vers « regularflame(int, vec const&, float, float, int, int, float, float, float, int) »
collect2: error: ld returned 1 exit status
=> Ça c'est sans les bibliothèques, et exactement la même chose si j'entre cette commande :
g++ -O3 -fomit-frame-pointer -ffast-math -Wall -fsigned-char -fno-exceptions -fno-rtti -o tess_client ./include/SDL_image.h ./include/SDL_mixer.h shared/crypto.o shared/geom.o shared/glemu.o shared/stream.o shared/tools.o shared/zip.o engine/aa.o engine/bih.o engine/blend.o engine/client.o engine/command.o engine/console.o engine/dynlight.o engine/grass.o engine/light.o engine/main.o engine/material.o engine/menus.o engine/movie.o engine/normal.o engine/octa.o engine/octaedit.o engine/octarender.o engine/physics.o engine/pvs.o engine/rendergl.o engine/renderlights.o engine/rendermodel.o engine/renderparticles.o engine/rendersky.o engine/rendertext.o engine/renderva.o engine/server.o engine/serverbrowser.o engine/shader.o engine/sound.o engine/stain.o engine/texture.o engine/ui.o engine/water.o engine/world.o engine/worldio.o game/ai.o game/client.o game/entities.o game/game.o game/render.o game/scoreboard.o game/server.o game/waypoint.o game/weapon.o -Lenet -lenet -L/usr/X11R6/lib -lX11 `sdl2-config --libs` -lz -lGL -lrt