IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Programme qui refuse de démarrer


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Points : 71
    Points
    71
    Par défaut Programme qui refuse de démarrer
    Bonjour,

    Je viens vraiment ici en dernier recours.

    J'ai développé une petite application destinée à devenir un jeu plus tard. Seulement voilà, récemment j'ai fais quelques modifications pour utiliser la bibliothèque DevIL (chargement d'images) avec opengl et glut.

    Le programme compile normalement, édition de lien sans soucis, mais à l'exécution, l'application plante directement, sans aucun log (pourtant j'ai essayé comme j'ai pus).

    Je décide alors d'installer un debugger, et au hasard bien sûr gdb. Je vous passe toute ma galère sur comment compiler un makefile sous vista (et oui....), cygwin, etc. Bref j'arrive à utiliser gdb, mais il ne s'arrête même pas à la première ligne du programme (avec un breakpoint)...

    Voici le bug :

    L'application n'a pas réussi à s'initialiser correctement (0x0150002).
    Cliquez sur OK pour arrêter l'application.
    Le log gdb :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Building to ensure sources are up-to-date
    Build succeeded
    Selecting target: 
    Release
    Adding source dir: D:\Programmation\olala project reborn 0.1\
    Adding source dir: D:\Programmation\olala project reborn 0.1\
    Adding file: bin\Release\Olala Project 0.exe
    Starting debugger: 
    done
    Registered new type: wxString
    Registered new type: STL String
    Registered new type: STL Vector
    Setting breakpoints
    (no debugging symbols found)
    Debugger name and version: GNU gdb 6.8
    Child process PID: 5408
    (no debugging symbols found)
    (no debugging symbols found)
    (no debugging symbols found)
    Program exited with code 030005200002.
    Debugger finished with status 0
    Je suis sous Vista et utilise Code Blocks avec mingw. Je pense que c'est une dll manquante, mais pourtant j'ai déjà tout vérifié! Comment être sûr des dll requises?

    Merci d'avance si vous pouvez me tirer de ce cauchemar!

  2. #2
    Membre averti Avatar de Nogane
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 241
    Points : 323
    Points
    323
    Par défaut
    Je vois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (no debugging symbols found)
    Alors je me demande si tu as bien activé les information de debogage dans ton code. (option -g)
    Sans ça le debogeur ne pourra pas intercepter les point d'arrêts.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Points : 71
    Points
    71
    Par défaut
    Oui -g est bien activé, mais j'avais laissé -s. C'est corrigé et voilà le nouveau log :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Building to ensure sources are up-to-date
    Build succeeded
    Selecting target: 
    Release
    Adding source dir: D:\Programmation\olala project reborn 0.1\
    Adding source dir: D:\Programmation\olala project reborn 0.1\
    Adding file: bin\Release\Olala Project 0.exe
    Starting debugger: 
    done
    Registered new type: wxString
    Registered new type: STL String
    Registered new type: STL Vector
    Setting breakpoints
    Debugger name and version: GNU gdb 6.8
    Child process PID: 5440
    Program exited with code 030005200002.
    Debugger finished with status 0
    J'ai mis un breakpoint à la première ligne de main. J'ai ensuite essayé en ligne de commande de mettre un breakpoint sur main, là aussi il n'y arrive jamais....

    De plus, je n'arrive pas à lancer ddd (interface pour les debugger dont gdb), à peine je tape entrer dans le bash que vista me dit que le programme a planté (et plusieurs fois en plus ) quelqu'un aurait-il une idée?

  4. #4
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Ca ressemble à une absence de dépendances...
    Ouvres ton programme avec Dependancy Walker et vérifie que toutes les DLLs sur lesquelles il s'appuie sont bien présentes.
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Points : 71
    Points
    71
    Par défaut
    Merci effectivement c'est ce dont j'avais besoin!

    Par contre le résultat n'est pas très réjouissant... Il semble manquer des dlls critiques comme MSVCR90D.dll dans DevIL.dll.

    Je vais tenter de le recompiler moi-même, mais pour l'instant je galère.

    Je continue dès que je peux ce soir.

  6. #6
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par Plomeg Voir le message
    Il semble manquer des dlls critiques comme MSVCR90D.dll dans DevIL.dll.
    Si ça fonctionnait avant, les modifications que tu as faites dans la classe DevIL.dll s'appuient sur les MFC de Visual Studio 2008.

    Il faut que:
    1. tu compiles en release plutôt qu'en debug
    2. tu installes le pack de redistribution VS2008 sur le poste, qui ne semble pas être le même que celui sur lequel tu as fait les-dites modifs
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Points : 71
    Points
    71
    Par défaut
    Je compile toujours en Release (avec option modifiées) et je me suis contenté d'installer la bibliothèque, je n'y ai pas touché.

  8. #8
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par Plomeg Voir le message
    Je compile toujours en Release (avec option modifiées) et je me suis contenté d'installer la bibliothèque, je n'y ai pas touché.
    Le 'D' à la fin de MSVCR90D.dll indique que ta librairie s'appuie sur une version debug de la librairie MSVCR90.
    "L'ordinateur obéit à vos ordres, pas à vos intentions." [Anonyme]

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Points : 71
    Points
    71
    Par défaut
    Ce n'est pas la seule manquante, il y-a aussi msvcr90.dll et msvcp90.dll.
    Celles-là je les ai trouvais sur internet par contre.

    Le problème reste que la dll (que j'ai copié collé depuis la release de DevIL) n'est pas complète, avez-vous une idée du problème?

  10. #10
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Plomeg Voir le message
    Ce n'est pas la seule manquante, il y-a aussi msvcr90.dll et msvcp90.dll.
    Celles-là je les ai trouvais sur internet par contre.
    Je suppose que tu les a copiées dans un répertoire système de manière "bestiale" sans passer par un logiciel d'installation. Donc cela risque de ne pas être complet. Il faut arrêter de copier des DLL comme cela sans savoir ce qu'elle font et surtout comment elles s'installent.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Par contre, tu peux éviter l'installation si tu fournis ces DLLs de manière complète.

    Je ne connais pas Visual 9, mais si c'est comme Visual 8, tu auras quatre fichiers:
    • MSVCR90.dll
    • MSVCP90.dll
    • MSVCM90.dll
    • Microsoft.VC90.CRT.manifest

    Normalement, ces quatre fichiers forment un ensemble complet, et tu peux les joindre directement, ensemble, à ton exécutable (dans le même dossier, quoi).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Points : 71
    Points
    71
    Par défaut
    Bon je m'en sors pas avec cette bibliothèque... Je laisse tomber et je reprends un chargement classique des images.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [LG]programme qui renomme des fichiers
    Par Ne0taku dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2005, 21h18
  2. programme qui consomme beaucoup de memoire
    Par gaut dans le forum Windows
    Réponses: 10
    Dernier message: 01/02/2005, 20h33
  3. Programme qui analyse un fichier log
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 20/08/2004, 14h27
  4. [LG]Programme qui n'affiche rien
    Par ousunas dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2004, 19h38
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo