dardarmotus
Messages postés24Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention27 mai 2004
-
23 avril 2004 à 16:31
dardarmotus
Messages postés24Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention27 mai 2004
-
19 mai 2004 à 16:32
dardarmotus 8-)
Salut les pros.
Ce message s'adresse aux personne familière avec la prog en C sous système unix.
Je programme actuellement une app en C sous Linux dans laquelle je dois utiliser une fenêtre créée par mes mimines.
J'ai donc au debut de mon prog insérer la ligne :
#include <X11/Xlib.h>
Et lors de la compilation, je me fais insulter car le fichier Xlib.h n'existe pas.
Apparemment ça doit se trouver sous usr/X11R6/include/X11/
mais de toute façon c'est pas du tout sur ma machine.
Donc, SVP, d'où k'c'est qu'on peut telecharger Xlib.h OU Comment qu'on installe ce fichier.
MetalDwarf
Messages postés241Date d'inscriptionmardi 29 octobre 2002StatutMembreDernière intervention23 janvier 2006 24 avril 2004 à 18:20
C est parce que tu n as pas installe les paquetage de developpement pour xfree...
regarde avec apt-get si tu es sous debian ou avec urpmi si tu es sous mandrake, ou...
Avec Debian le paquetage doit s appeler libxfree86<version>-dev ou un truc de ce style.
dardarmotus
Messages postés24Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention27 mai 2004 17 mai 2004 à 17:52
dardarmotus 8-)
J'ai trouvé sur mes CD d'install un fichier xf86.rpm mais lorsque je l'installe je n'ai toujours pas la librairie XLib.h
sur mon PC.
Sur le site X.org je ne trouve pas non plus le fichier *.rpm à télécharger.
Un truc que je ne comprend pas c'est pourquoi mon OS a un interface graphic qui fonctionne alors que les librairie Xlib/h et Xutil.h ne sont pas sur mon PC. S'ils ne sont pas installés comment ce fait-il que je puisse avoir des fenêtre graphiques ou des jeux sur ma station LINUX?
MetalDwarf
Messages postés241Date d'inscriptionmardi 29 octobre 2002StatutMembreDernière intervention23 janvier 2006 17 mai 2004 à 18:25
Ou la tu confonds pas mal de choses.
Oui les librairies de Xfree86 sont installees sur ton systeme, mais ca n a aucun rapport avec les headers dont tu parles!!
Les librairies en question sont des fichiers .so.
Les fichiers .h sont simplement des definitions de fonctions, de structures et de types en langage C. Tu peux tres bien utiliser la lib sans ces fichiers, et c est d ailleurs le cas par defaut sur l immense majorite des distributions (sauf peut etre gentoo et LFS).
Il faut que tu installes les RPM de DEVELOPPEMENT, que tu peux trouver sur le site de xfree86, ou alors sur les CDs de ta distrib (si tu as une mandrake regarde avec urpmi, pour red hat je sais pas).
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Script started on Tue May 18 12:28:57 2004
bash-2.03# gcc -c premier.c
bash-2.03# gcc -o premier premier.c
/tmp/ccD1maoU1.o: In function `CreerFenetre':
/tmp/ccD1maoU1.o(.text+0xa6): undefined reference to `XCreateSimpleWindow'
/tmp/ccD1maoU1.o(.text+0xc6): undefined reference to `XstoreName'
/tmp/ccD1maoU1.o: In function `PoserFenetre':
/tmp/ccD1maoU1.o(.text+0xf0): undefined reference to `XMapWindow'
/tmp/ccD1maoU1.o: In function `OuvrirConnexion':
/tmp/ccD1maoU1.o(.text+0x136): undefined reference to `XOpenDisplay'
/tmp/ccD1maoU1.o: In function `BoucleEvenements':
/tmp/ccD1maoU1.o(.text+0x17c): undefined reference to `XSelectInput'
/tmp/ccD1maoU1.o(.text+0x18e): undefined reference to `XNextEvent'
/tmp/ccD1maoU1.o(.text+0x1da): undefined reference to `XDrawingString'
bash-2.03#
Script done on Tue May 18 12:29:01 2004
cs_bouba
Messages postés518Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 novembre 20073 18 mai 2004 à 15:55
C'est tout a fait normal. Tu a oublié le chemin des librairies (*.so en général) de X11.
Faits ce petit makefile (copie les lignes qui suivent sous un fichier 'Makefile' et enregistres)
dardarmotus
Messages postés24Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention27 mai 2004 19 mai 2004 à 14:49
dardarmotus 8-)
Désolé mais je suis une quiche en prog sous unix.
D'habitude je crée des app en VC++ et en VB.net sous windows. Mais la exceptionnellement je programme sous LINUX Suse 6.3 et je dois afficher les résultat de mon traitement dans une fenêtre UNIX.
Qu'est ce qu'un fichier makefile ?
A quoi ca sert ?
Quelle est son extension ?
Quel nom je dois lui donner ?
Ou dois-je l'enregistrer ?
cs_bouba
Messages postés518Date d'inscriptiondimanche 2 décembre 2001StatutMembreDernière intervention10 novembre 20073 19 mai 2004 à 15:07
Un fichier makefile permet d'automatiser un certains nombre de tâches et commandes. Il existe des gourou du Makefile, lorsque l'on sait bien s'en servir on peut gagner un temps précieux et faire des trucs pas mal.
Ici, le makefile permettra de compiler ton programme, ce n'est pas vraiment necessaire dans ton cas car tu n'as qu'un seul fichier, mais lorque l'on doit compiler 10 voir 100 fichiers, mieux vaut faire un makefile plutôt que de ce tapper a chaque fois 100 lignes de compilation sur la console a chaque fois que l'on compile son programme.
Au niveau de l'extension, c'est simple, y'en a pas. Sous UNIX l'extension ne sert a rien.
Tu dois donc appeler ton fichier
Makefile
Tu l'enregistres ou se trouvent tes sources.
On aurait pu l'appeler autrement mais il aurait fallut passer le nom du fichier avec une option a la commande make.
Si je me souviens bien ce doit être.
make -f nom_du_makefile
Mais quand le fichier s'appel makefile on tappe juste
make
Bon, y'a pleins de trucs a apprendre a ce niveau mais je pense que ce doit suffir. Si tu veux plus de précisions faits un man.
Bonne chance.