Bonjour,
Mon problème en bref,
Compiler sous Windows un programme C utilisant les librairies X11.
Cygwin ayant été installé, je ne trouve toujours pas de répertoire X11.
Ma principale question: Un répertoire X11 doit-il être créé lors de l'installation de cygwin et si non, pourquoi?
En détail,
Programmant habituellement en C++, j'essaye depuis déjà plusieurs semaines (les week-ends) de compiler un programme C qu'un ami a reçu et qui utilise des librairies X11. Je suis parvenu à le compiler sous Linux grâce à gcc mais pas sous Windows avec MingW. (Merci au passage, pour ce compilateur que j'ai trouvé sur ce forum après lecture de la page consacrée aux compilateurs.)
Après recherches sur le net, j'ai trouvé qu'il fallait utiliser cygwin.
Je l'ai installé en cochant toutes les options (165Mio dans le répertoire "C:\cygwin") mais malheureusement, je ne trouve aucun sous-répertoire X11.
Le path ne semble pas non plus avoir été modifié lors de l'installation.
Et donc les lignes suivantes génèrent des erreurs.
xclock, permettant de vérifier si X11 fonctionne, est introuvable sous Windows mais bien sous Linux (X11 étant intégré au noyau).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/Xos.h> #include <X11/Xatom.h>
L'icône sur le bureau pour lancer cygwin est un lien vers le fichier C:\cygwin\cygwin.bat contenant les lignes suivantes.
@echo off
C:
chdir C:\cygwin\bin
bash --login -i
bash n'est bien sûr pas reconnu par Windows comme commande interne ni externe puisque le path n'a pas été modifié et qu'aucun fichier bash ne se trouve dans C:\cygwin\bin comme le laisse penser la commande chdir.
Cygwin tenterait-il de simuler une machine Unix sous Windows pour utiliser X11?
Il est étange que dans la documentation de Cygwin on utilise très (trop) fortement la syntaxe Unix...
Existe-t-il une version Unix et une version Windows de Cygwin...?
J'ai pourtant bien exécuté setup.exe qui est un programme Windows...!
Sous Linux, la commande pour compiler le programme est:
gcc `pkg-config --cflags x11` "showmesh.c" `pkg-config --libs x11` -o "showmesh"
ce qui se simplifie en:
gcc "showmesh.c" -lX11 -o "showmesh"
Un ami sous Macintosh a pu compiler grâce à la ligne suivante:
gcc ~/Desktop/showmesh_1_0.c -L/usr/X11R6/lib -lX11
Conclusion toute personnelle,
Avec mon faible niveau de connaissances (niveau 0) sur les librairies X11, je ne vois actuellement qu'une explication rationnelle: cygwin n'est pas correctement installé! J'ai pourtant coché toutes les options possibles lors de l'installation et j'ai obtenu le message "Installation Complete".
Dans la documentation http://x.cygwin.com/docs/ug/, le premier problème rencontré à l'étape http://x.cygwin.com/docs/ug/configure.html est XWin n'est pas reconnu comme commande interne/externe.
Je ne vois pas de solution à mon problème si ce n'est étudier tout le fonctionnement de X11 pour me familiariser mais c'est un peu long...
Avez-vous des idées..., elles seront vraiment les bienvenues...
Pouvez-vous répondre à la question posée au début du message, pour rappel:
Un répertoire X11 doit-il être créé lors de l'installation de cygwin et si non, pourquoi?
Merci déjà pour la lecture de ce long message où j'ai essayé d'être le plus complet possible.
Saji.
P.S.: En faisant une recherche "X11 cygwin" sur le forum "C", j'ai trouvé dans "message d'erreur" posté le 29/10/05 par legg27, des informations très intéressantes mais qui n'ont malheureusement pas résolu mon problème.
Partager