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

Shell et commandes GNU Discussion :

mingw64-mysys2 sous Windows 7 - problèmes de compilation


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 9
    Points
    9
    Par défaut mingw64-mysys2 sous Windows 7 - problèmes de compilation
    Bonjour,

    Souhaitant utiliser les compilateurs GNU en commandes lignes dans une console, j’ai procédé par étapes comme suit ; le résultat est que ça ne compile pas.

    N’ayant jamais eu un cours approfondi sur UNIX ou LINUX, mes connaissances sur la mise en œuvre des commandes correspondantes sont plus que fragmentaires. Si vous voyez ce qui « cloche » dans ma démarche, je vous remercie par avance pour l’aide que vous voudrez bien m’apporter.

    Cordialement vôtre,

    getud78


    Mise en œuvre des moyens choisis :

    Mise en place des outils d’émulation UNIX – Modification de la variable d’environnement PATH – Essais de compilations

    1 – Mise en place des deux outils d’émulation d’UNIX : mingw-w64 et mysys2

    1.1 - Téléchargement et installation de mingw-w64 :

    https://sourceforge.net/projects/min...les/mingw-w64/

    On télécharge alors mingw-w64-install.exe (938 Ko)

    Pour son exécution, les choix suivants ont été validés :
    Settings :
    Version : 8.1.0
    Architecture : x86_64
    Thread : posix
    Exception : seh
    Build revision : 0

    mingw64 est installé dans C:\Users\Mon_Nom\mingw64\bin

    Les répertoires que j’ai cru bon de retenir pour la variable d’environnement PATH sont :

    C:\Users\MON_NOM\mingw64\bin qui contient les compilateurs
    C:\Users\MON_NOM\mingw64\lib\gcc\x86_64-w64-mingw32\8.1.0 qui contient des fichiers compressés .a ???
    C:\Users\MON_NOM\mingw64\x86_64-w64-mingw32\bin qui contient des commandes .exe
    C:\Users\MON_NOM\mingw64\x86_64-w64-mingw32\lib qui contient des fichiers .o et des .a ???
    C:\Users\MON_NOM\mingw64\opt\bin qui contient des commandes et des dll

    Ces choix méritent d’être analysés par des personnes plus au fait que moi des subtilités de mingw64.

    1.2 – Téléchargement et installation de MYSYS2 (bash shell)
    https://www.msys2.org/
    Choix : x86_64
    On télécharge alors msys2-x86_64-20180531.exe (77295K0)
    Il est exécuté et le résultat est dans le répertoire C:\MYSYS2_64 qui contient de nombreux répertoires vides qui semblent correspondre à des répertoires de mingw64
    C:\MYSYS2_64\usr\bin contient l’émulation des commandes UNIX retenues ; en particulier la console mintty.exe.
    Pour la variable d’environnement PATH, j’ai retenu :
    C:\MYSYS2_64\usr\bin

    2 _ Insertion des répertoires retenus dans la variable d’environnement PATH.

    C:\Program Files\Java\jdk1.8.0_91\bin;C:\Program Files\Java\jre1.8.0_91\bin; C:\MYSYS2_64\usr\bin; C:\Users\MON_NOM\mingw64\bin;C:\Users\MON_NOM\mingw64\lib\gcc\x86_64-w64-mingw32\8.1.0 ; C:\Users\MON_NOM\mingw64\x86_64-w64mingw32\bin ;C:\Users\MON_NOM\mingw64\x86_64-w64-mingw32\ ;C:\Users\MON_NOM\mingw64\opt\bin;C:\Git\bin\;C:\Git\usr\bin\;C:\gedit\bin;C:\gedit_64\bin;C:\gedit\bin;C:\gedit_64\bin;C:\Users\MON_NOM\AppData\Roaming\Dashlane\4.1.1.10306\bin\Firefox_Extension\{442718d9-475e-452a-b3e1-fb1ee16b8e9f}\components8e9f}\components;C:\Users\MON_NOM\Anaconda3\;C:\Users\MON_NOM\Anaconda3\Scripts\;C:\Mes_Programmes\eclipse;

    3 – COMPILATION NON-ABOUTIES

    Pour ces exemples très simples, les fichiers de compilation ont été recopiés dans le répertoire de travail.

    1 – vérification de l’existence de gfortran.exe et du fichier Langage_F95_salutations.f95 dans le répertoire de travail

    $ ls -l -t gfortran.exe
    -rwxr-xr-x 1 MON_NOM None 1957376 12 mai 08:10 gfortran.exe

    $ ls -l -t Langage_F95_salutations.f95
    -rw-r--r-- 1 MON_NOM None 146 26 juin 22:51 Langage_F95_salutations.f95

    2 - 1er essai de compilation
    $ gfortran.exe Langage_F95_salutations.f95
    bash: gfortran.exe : commande introuvable

    3 – 2ème essai de compilation
    $ ./gfortran.exe Langage_F95_salutations.f95
    C:/Compilation_Execution/gfortran.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory

    Remarque : La console ne semble pas avoir un accès direct à la variable d’environnement PATH définie précédemment.

    Comment y remédier ?

    Est-ce suffisant pour expliquer que la compilation n’aboutit pas ?

    Je retrouve les mêmes problèmes avec gcc.exe et le fichier équivalent Langage_C_salutations.c

    Fichiers sources utilisés pour les premiers tests de compilation :

    Fortran :

    Program Salut
    implicit none
    print *, "Le Fortran 90 vous salue bien !"
    print *, "Patientez un peu !"
    call sleep(10)
    End Program Salut

    C :

    #include <stdio.h>
    #include <unistd.h>

    int main() {
    printf("Le Langage C vous salue bien !\n");
    printf("Patientez un peu !");
    sleep(5);
    return 0;

    }
      0  0

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    2 _ Insertion des répertoires retenus dans la variable d’environnement PATH.
    As-tu redéfini ton PATH ou as-tu ajouté au PATH ?
    Pour savoir ce que contient PATH, demande-lui.
    Donne-nous le résultat, stp.


    Remarque : La console ne semble pas avoir un accès direct à la variable d’environnement PATH définie précédemment.
    Même réaction, ici.

    Est-ce suffisant pour expliquer que la compilation n’aboutit pas ?
    Oui. S'il ne sait pas où il habite, il ne retrouve pas ses dépendances. Comme les bibliothèques. (c'est ce qu'il dit).
    C'est soit un problème d'environnement, soit un problème d'installation.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
      0  0

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 9
    Points
    9
    Par défaut mingw64-mysys2 sous Windows 7 - problèmes de compilation
    merci pour ta réponse,
    Bonsoir,

    Je me suis positionné dans le répertoire de travail et dans le terminal sys2, j'ai lancé la commande echo $PATH, qui affiche :
    /usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/

    Ce qui est tout à fait différent de la variable PATH définie dans Windows.

    Comment importer le PATH défini dans Windows dans la console définie dans MYSYS2 ?

    Merci de m'aider à combler mes lacunes,

    Cordialement,

    getud78
      0  0

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Avant tout, quelques pinaillages :
    • Dans l'environnement Mingw, ce n'est pas gfortran.exe mais gfortran. N'est-ce pas ?
    • Du coup, tu lui donnes à exécuter un programme, qui existe, mais qu'il ne reconnaît pas.
    • Je ne programme pas en Fortran.
    • En C, je ferais plutôt :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      gcc Langage_C_salutations.c -o mon_exectuable.exe


    Peux-tu confirmer que, dans ce dernier cas, l'erreur persiste.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
      0  0

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Problèmes de passage du PATH utilisateur Window7 dans msys2
    Citation Envoyé par getud78 Voir le message
    merci pour ta réponse,
    Bonsoir,

    Je me suis positionné dans le répertoire de travail et dans le terminal sys2, j'ai lancé la commande echo $PATH, qui affiche :
    /usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/

    Ce qui est tout à fait différent de la variable PATH définie dans Windows.

    Comment importer le PATH défini dans Windows dans la console définie dans MYSYS2 ?

    Merci de m'aider à combler mes lacunes,

    Cordialement,

    -------------------------------------------------------------------------------------------------------------------------
    Bonsoir,

    Je me suis concentré sur le passage du PATH utilisateur Windows dans la console de msys2;

    Dans le PATH utilisateur de WINDOWS 7, j’ai rajouté : C:\MYSYS2_64 et C:\MYSYS2_64\usr\bin.

    1 - C:\MYSYS2_64 est le chemin d’accès à C:\MYSYS2_64\msys2.ini dont le contenu est :

    #MSYS=winsymlinks:nativestrict
    #MSYS=error_start:mingw64/bin/qtcreator.exe|-debug|<process-id>
    #CHERE_INVOKING=1
    #MSYS2_PATH_TYPE=inherit
    MSYSTEM=MSYS

    #MSYS2_PATH_TYPE=inherit est censé, me semble-t-il, assurer le transfert PATH utilisateur Window7 dans la console mintty.exe


    2 - C:\MYSYS2_64\usr\bin est le chemin d’accès aux commandes de type UNIX et en particulier à la console mintty.exe

    Tout semble assurer que le PATH utilisateur Window7 sera accessible dans le terminal mintty.exe.

    Après avoir redémarré mon PC, j’ai ouvert la console mintty.exe, puis j’ai exécuté la commande echo $PATH
    Le PATH qui s’affiche alors est :
    /usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/

    Ce qui est différent du PATH de WINDOWS, qui n’a donc pas été importé dans la console mintty.exe

    CONCLUSION : Comment faire pour que msys2.ini s’exécute et que #MSYS2_PATH_TYPE=inherit, assure l’importation du PATH utilisateur de WINDOWS, le rendant ainsi accessible dans la console ?

    Si vous pouvez m’aider à trouver une solution, je vous en remercie par avance.


    getud 78



    getud78
      0  0

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Afin d'améliorer la lisibilité de tes messages et ainsi obtenir plus facilement de l'aide, voudrais-tu bien formater tes messages?

    Tu cliques sur le bouton en bas à droite "Modifier le message" et tu utilises les balises QUOTE pour les citations et CODE pour le code, les données ou les traces (bouton avec le dièse "#" en haut à droite de la barre d'outils de l'éditeur).

    Merci d'avance.
      0  0

  7. #7
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2016
    Messages : 42
    Points : 53
    Points
    53
    Par défaut c'est quoi la fin de l'histoire ?
    Décidément, je me demande si je suis fais pour les forums moi ... Cette discussion s'arrête t-elle ainsi ? Y a t-il une suite qui m'échappe ?
    C'est déjà assez frustrant de ne rien comprendre, alors si en plus ceux qui posent des questions et ceux qui y répondent s'en foutent !
      0  1

  8. #8
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Quand le premier posteur disparaît avec sa question, la discussion s'arrête.
    Préférerais-tu qu'on entretienne des questions qui n'intéressent personne ?

    Ici, tu vois bien ce qu'il s'est passé :
    La personne qui a posé la question a été assez arrogante pour poster un message d'auto-citation, en forme de "Mais j'ai déjà tout dit, connard !".
    Outre le fait que les habitués du forum ne sont pas des pushing-balls qu'on peut insulter, il n'a jamais tapé la bonne commande.
    Au lieu de prendre en considération l'aiguillage qui lui a été fait, il a cédé à un mouvement d'humeur. Caprice non satisfait.

    Qu'il ne comprenne rien n'est pas grave. Il y a des solutions.
    Mais elles demandent manifestement trop d'efforts de sa part.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
      4  0

  9. #9
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 550
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 550
    Points : 19 383
    Points
    19 383
    Par défaut
    Citation Envoyé par massaproduxy
    je me demande si je suis fais pour les forums moi
    on peut se poser la question, car on ne déterre pas une discussion, surtout quand elle s'est "terminée" en eau de boudin.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.
      1  0

Discussions similaires

  1. Problème de compilation sous Windows
    Par MokiProxY dans le forum wxWidgets
    Réponses: 12
    Dernier message: 19/09/2009, 16h50
  2. Problème de compilation avec GSOAP sous Windows
    Par qiqi1111 dans le forum C++
    Réponses: 1
    Dernier message: 17/03/2009, 11h48
  3. Réponses: 2
    Dernier message: 08/07/2008, 19h35
  4. [Cal3D] Problème de compilation avec Cal3D sous windows
    Par nicoenz dans le forum Moteurs 3D
    Réponses: 2
    Dernier message: 15/11/2006, 09h46
  5. Réponses: 2
    Dernier message: 16/08/2006, 23h18

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