[resolu] compilation release Visual Studio 2008

compilation release Visual Studio 2008 [resolu] - Divers - Programmation

Marsh Posté le 31-05-2010 à 22:02:40    

Bonjour, j'ai un projet de jeu à rendre pour apres demain xD
Le jeu est codé en C++ avec Visual Studio 2008. J'utilise SFML comme lib.
 
Le jeu est fini et est totalement fonctionnel en mode debug donc SFML est bien installé...
 
Mais quand je compile ma release, cet derniere ne fonctionne pas sur les machine ou Visual Studio n'est pas installé !
 
J'ai bien intégré les dll de SFML à coté de mon exe...
J'ai fais le test sur mon pc, ça fonctionne, normal :p . Sur le pc d'un pote ou Visual Studio est installé (mais pas SFML), ça marche aussi .  
 
Mais impossible quand VS ne l'est pas : Erreur windows :(
 
Merci d'avance!


Message édité par sham_ren le 02-06-2010 à 21:51:31
Reply

Marsh Posté le 31-05-2010 à 22:02:40   

Reply

Marsh Posté le 01-06-2010 à 11:41:52    

Hum... up c'est pressé !!!!!!!

Reply

Marsh Posté le 01-06-2010 à 14:21:56    

il faut sans doute installer un vcredist2008 sur la machine en question
 
Edit : pour x86 : http://www.microsoft.com/downloads [...] layLang=en


Message édité par theshockwave le 01-06-2010 à 14:23:38

---------------
last.fm
Reply

Marsh Posté le 01-06-2010 à 15:17:39    

J'ai essayé tout à l'heure, cela fait la même erreur...
 
J'ai aussi essayé de voir les dépendences avec le logiciels édependency walker", ce derniere me sort 6 dlls :
SFML-WINDOW-D.DLL
SFML-GRAPHICS-D.DLL
SFML-SYSTEM-D.DLL
MSVCP90D.DLL
MSVCR90D.DLL
KERNEL32.DLL
 
Les 3 premieres ne posent pas de probleme vu que je les intègre avec la release, la derniere, je pense que tous les pcs windows l'ont.
Quand aux MSV.....dll, j'ai essayé de les copiers dans les même dossiers...
Mais j'ai toujours la même erreur :(
 
De plus, j'ai aussi essayé de creer un installateur avec Visual Studio, mais c'est pareil :(
 
De plus, pour que l'exe se compile en mode release, j'ai du changer le "runtime library" sur : Multi-threaded Debug DLL (/MDd)
 
En gardant celui configuré d'origine pour le mode release (Multi-threaded DLL (/MD), j'avais cette erreur à la fin de la compile :
 
"Unhandled exception at 0x75d3f7cc in Game.exe: 0xC0000005: Access violation reading location 0x616d7265."

Reply

Marsh Posté le 01-06-2010 à 16:11:05    

MSVCP et MSVCR sont précisément les DLLs que le vcredist doit t'installer. Par contre, elles sont suffixées en D, ce qui veut dire que tu linkes avec le runtime en Debug au lieu d'utiliser le runtime en Release


Message édité par theshockwave le 01-06-2010 à 16:11:17

---------------
last.fm
Reply

Marsh Posté le 01-06-2010 à 16:19:27    

Oui, tout mon problème viens de là... En effet, je n'arrive pas à compiler en release avec les parametres par defaut...

Reply

Marsh Posté le 01-06-2010 à 16:42:05    

dans ton projet : Configuration Properties -> C/C++ -> Code Generation
tu as un champ Runtime Library. Assure-toi que c'est bien Multi Threaded ou Multi Thread DLL


---------------
last.fm
Reply

Marsh Posté le 01-06-2010 à 17:01:33    

Oui, mais comme je l'ai dit il y a 2 posts, impossible de compiler en Multi Threaded ou Multi Thread DLL

Reply

Marsh Posté le 01-06-2010 à 17:10:53    

oops, au temps pour moi.
 
Normalement, visual aurait du te générer ta configuration release correctement.
 
En tout cas, ton erreur n'est pas une erreur "à la fin de la compile" mais une erreur dans ton programme, visiblement.
Tu as essayé de tracer ton code ?
 
Que tu sois en release ou non, tu peux toujours choisir d'avoir tes symboles de debug. Tente éventuellement de virer les optimisations du compilo et de voir si le bug se produit toujours (et ce sera plus facile à tracer si c'est le cas)
 
Edit : note que les infos de debug rajoutées au runtime peuvent éventuellement te masquer certaines erreurs en debug. Ca peut expliquer pourquoi que tu n'as ton crash qu'en release


Message édité par theshockwave le 01-06-2010 à 17:12:24

---------------
last.fm
Reply

Marsh Posté le 02-06-2010 à 21:51:03    

Hum.... Apres des heures à me prendre la tête, j'ai remarqué que je n'avais pas linké les bonnes libs (j'avais fait un c/v des libs (avec le -d forcément ^^) de la config debug.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed