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;
}
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
Problèmes de passage du PATH utilisateur Window7 dans msys2
Citation:
Envoyé par
getud78
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
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 ! 8O