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 :

Installation de MinGW 86 bits et problèmes de compilation sur Eclipse Galileo


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 97
    Points : 47
    Points
    47
    Par défaut Installation de MinGW 86 bits et problèmes de compilation sur Eclipse Galileo
    Bonjour,

    j'utilise Eclipse Galiléo, ainsi que jdk1.6.0_18 et un jre6.
    J'ai modifé mes variables d'environnement en fonction de ça et ça fonctionne.
    Les commandes java, javac, etc. sont reconnues.

    J'ai ensuite voulu installer un compilateur MinGW compatible pour les machines de 64 bits (je possède Windows 7).

    J'ai donc obtenu après quelques recherches des résultats assez troublants, dont celui-ci, lorsque je tappe gcc -v :

    C:\Users\Pc>gcc -v
    Using built-in specs.
    Target: x86_64-pc-mingw32
    Configured with: ../gcc/configure -q --prefix=/var/tmp/w64 --with-sysroot=/var/tmp/w64 --host=x
    86_64-pc-mingw32 --target=x86_64-pc-mingw32 --silent
    Thread model: win32gcc version 4.4.0 20080528 (experimental) (GCC)

    Cela m'étonne un peu ! (mais au moins il reconnait gcc !)

    Ensuite, quand je tente de compiler un projet prééxistant sur le nouvel Eclipse Galileo, voici ce qu'il me donne comme message d'erreur :

    **** Build of configuration Debug for project MBMDR ****


    (Cannot run program "mingw32-make" (in directory "E:\Documents\workspace_cpp\MBMDR\Debug"): CreateProcess error=2, Le fichier spécifié est introuvable)

    Qu'est-ce que je dois modifier pour être dans le bon ??

    Voici mes variables d'environnement :

    Path : %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.6.0_18\bin;C:\MinGW\bin

    Devrais-je changer qqch à ce niveau-là ? En effet, d'emblée, l'archive que j'ai reçue était un peu particulière

    Si vous voulez, quand on l'ouvre on a des bin, include, info, lib etc. et en plus il y a x86_64-pc-mingw32.

    Et quand on ouvre ce dernier répertoire on retrouve aussi bin, include et lib.

    Savez-vous par hasard où je me suis plantée ? Ca m'aiderait énormément...

    Merci 1000 fois d'avance

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    A en juger par l'erreur, c'est l'exécutable make (mingw32-make, pour être précis) que Eclipse ne trouve pas...

    En effet, il est possible d'automatiser la compilation des différents fichiers qui composent un projet avec un outil qui s'appelle make, qui utilise un fichier classiquement nommé Makefile dans lequel on définit les différentes options de compilations, les règles à appliquer (tel unité de compilation dépend de telle autre, il faut chercher les fichiers d'en-tête dans tel dossier, il faut passer telle ou telle option au compilateur, etc)

    Bien que je n'utilise pas habituellement Eclipse pour programmer en C++, j'ai la quasi certitude que ce dernier utilise l'outil dont je viens de parler pour compiler les projets.

    S'il ne trouve pas l'exécutable mingw32-make, il est "logique" et "normal" qu'il ne soit pas en mesure de faire son boulot

    Tu trouvera l'exécutable qui te manque sur le site de mingw dans le dossier nommé... MinGW make.

    sois cependant attentif au fait que l'exécutable en question est, normalement, compilé en 32 bits, mais, sauf erreur, cela ne l'empêche pas de fournir des applications 64 bits

    PS: Une petite précision qui n'a rien à voir: les architectures existantes utilisent 32 bits (pour les plus anciennes) ou 64 bits (pour les plus récentes)...

    Le 86 indique que l'on se trouve en réalité face à une architecture de type x86, c'est à dire, de la famille des premiers processeurs que l'on trouvait dans les "compatibles ibm". Et le terme exact est x86_64, x86 parce que l'on en est, si j'ai bien suivi le compte, à la version 886 descendant de ces premiers processeurs, le 64 indiquant... qu'ils utilisent des données codées sur... 64 bits et non plus sur 32 comme c'était le cas précédemment
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Yep, merci pour ta réponse, ça fonctionne maintenant.

    Je suis cependant confrontée à un autre problème; lorsque j'essaye de compiler mon programme il m'indique l'erreur suivante :

    **** Build of configuration Debug for project MBMDR ****

    mingw32-make -f makefile all
    'Building target: MBMDR'
    'Invoking: MacOS X C++ Linker'
    g++ -o "MBMDR" ./src/"tous mes fichiers.o": file not recognized: File format not recognized
    collect2: ld returned 1 exit status
    mingw32-make: *** [MBMDR] Error 1

    Je ne comprends pas d'où peut provenir cette erreur étant donné que la compilation (et l'exécution) fonctionnent parfaitement sur mon autre PC (windows XP - dualcore - Eclipse Galiléo).
    Les makefiles générés automatiquement sont identiques sur les deux machines, et à moins que je sois passée à côté de quelque-chose, les options de compilation aussi.

    A votre avis, à côté de quoi je suis passée?

    Merci beaucoup pour votre aide !

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    utilises-tu bien la version ... 64 bits de binutils (et de ld en particulier)
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    A vrai dire, je ne sais pas trop (?). Comment puis-je vérifier cela ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Voici le fichier que j'ai installé : mingw32-make-3.80.0-3.exe, comme vous me l'aviez conseillé dans votre premier post.

    Dois-je installer quelque-chose d'autre?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 207
    Points : 107
    Points
    107
    Par défaut
    Messieurs / Mesdames !

    Je me joins à vous, ce sujet m'intéresse !

    Tout comme nanath02, j'essaye de programmer en C/C++ grâce à l'IDE Eclipse.
    Je l'ai déjà utilisé sans trop de problème sur XP / Ubuntu (Gallileo), et voilou que mon nouveau poste est équipé de 7 (64bits)!

    Après installation D'Eclipse CDT, et des package MinGW, le petit "Hello World" fonctionne a peu près!
    Pourquoi à peu près?

    Et bien je ne peux pas exécuter mon programme depuis Eclipse : rien ne se passe.
    Juste la ligne suivante qui apparait dans la Console d'Eclipse :

    <arrêté> Hello World.exe [C/C++ Application] D:\..........\Debug\Hello World.exe
    De même, lorsque je me rends dans le dossier de l'application et que le la lance, j'obtiens l'erreur suivante :

    Impossible de démarrer le programme car il manque libgcc_s_dw2-1.dll sur votre ordinateur
    A noter qu'un lancement en mode administrateur règle le problème.

    Enfin, j'aimerais savoir comment spécifier à Eclipse que j'aimerais un exécutable 64bits.


    Merci pour votre aide les amis

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Pas mal, la remontée de post :p

    Si tu essaye de lancer ton application "hello world" en double cliquant simplement dessus, tu dois veiller à ce que le dossier dans lequel se trouvent les différentes dlls (dont, pour celle qui nous intéresse, libgcc_s_dw2-1.dll) apparaisse dans la variable PATH.

    Typiquement, cette dll devrait sans doute se trouver dans c:\MinGW\bin, avec l'ensemble des binaires intervenant dans MinGW (les binaires de Gcc, ceux de binutils, ...)

    Tu dois donc:

    Soit modifier toi-même (si tu as les accès pour le faire) la variable PATH en passant (je donne le chemin sous vista, je n'ai pas encore eu l'occasion de tester windows 7 ) Panneau de configuration -> Système -> modifier les paramètres (accepter l'avertissement) -> onglet paramètres système avancés -> Variables d'environnement.

    Selon ce qui t'intéresse le plus, tu peux modifier la valeur de la variable PATH soit dans la liste "Variable utilisateur pour <ton nom> soit dans la liste "Variable système", la deuxième solution permettant à n'importe qui d'utiliser des applications nécessitant les dlls propres à Gcc.

    Si tu n'a pas la possibilité d'effectuer ces changements, il faudra "contourner" le problème en:
    • Lançant une "invite de commandes" (menu "démarrer ->accessoires ->invite de commandes)
    • modifiant *temporairement* la variable PATH à l'aide de la commande set PATH=%PATH%;c:\MinGW\bin
    • Lançant ton application depuis cette invite de commanes
    Tu peux, comme alternative, créer un fichier batch proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    set PATH=%PATH%;C:\MinGWbak\bin
    cmd
    @echo on
    (il est tout simple, mais il fonctionne ) enregistré sur ton bureau, sur lequel tu n'aura qu'à double cliquer
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 207
    Points : 107
    Points
    107
    Par défaut
    Yop koala01 , merci pour ta réponse

    Effectivement, belle remontée, et sans dopage

    Alors, cette dll est bien présente dans MinGW\bin.
    Par contre, ce chemin est déjà spécifié dans la variable Path de mes variables d'environnement (Panneau de configuration -> Système et sécurité -> Système -> Paramètres de nom d'ordinateur, de domaine et de groupe de travail : Modifier les paramètres -> Paramètres système avancés -> Variables d'environnement), et ce pour tous les utilisateurs.
    J'ai en effet ajouté ce chemin (ainsi que MinGW\msys\1.0\bin) pour qu'Eclipse ai accès aux différents outils de compilation, link et autres....

    Autre idée? :p

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 207
    Points : 107
    Points
    107
    Par défaut
    Juste pour précisé que j'ai lancé un nouveau sujet dans le forum dédié à Eclipse.

    Ici même

    Voilou

Discussions similaires

  1. problème avec tuto sur eclipse RCP
    Par henpower dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 18/03/2008, 17h14
  2. Problème de compilation sur VB2008 Express
    Par djorfe dans le forum VB.NET
    Réponses: 5
    Dernier message: 12/03/2008, 10h25
  3. problème de compilation sur Ubuntu
    Par mister bean dans le forum Linux
    Réponses: 2
    Dernier message: 15/02/2008, 22h38
  4. Réponses: 7
    Dernier message: 12/11/2006, 12h49
  5. [Eclipse][Java]Problème de compilation sur CTRL+S
    Par ZeKiD dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 27/05/2004, 11h49

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