Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/06/2008, à 14:56

mrad

Graphisme en C : creation des fenetre.[Résolu]

Bonjour tout le monde,
Voici un petit programme C qui permet de creer des fenetre :

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
Display * disp;
int scr;
Window win[4];
GC gc[4];
unsigned long BLACK,WHITE;
int main(void){

 	disp=XOpenDisplay("");
 	scr=DefaultScreen(disp);
 	BLACK=BlackPixel(disp,scr);
 	WHITE=WhitePixel(disp,scr);
 	int i;
 	for(i=0;i<4;i++){
		win[i]=XCreateSimpleWindow(disp,RootWindow(disp,scr),0,0,500,340,2,BLACK,WHITE); 
 		gc[i]=XCreateGC(disp,win[i],0,0); 
 		char str[20];sprintf(str,"Graphisme %d",i);
		XStoreName(disp,win[i],str);
		XMapWindow(disp,win[i]);
		XFlush(disp);
		usleep(100000);
		XMoveWindow(disp,win[i],500*(i%2),384*(i/2));
		XDrawLine(disp,win[i],gc[i],10,280,550,200);
		XFlush(disp);
	}
	getchar();
 	for(i=0;i<4;i++) XDestroyWindow(disp,win[i]);
	XCloseDisplay(disp);
 	return 0;
}

Le compilateur m'affiche les erreurs suivantes :

untitled.c:(.text+0x27): undefined reference to `XOpenDisplay'
untitled.c:(.text+0x109): undefined reference to `XCreateSimpleWindow'
untitled.c:(.text+0x13f): undefined reference to `XCreateGC'
untitled.c:(.text+0x183): undefined reference to `XStoreName'
untitled.c:(.text+0x19f): undefined reference to `XMapWindow'
untitled.c:(.text+0x1ac): undefined reference to `XFlush'
untitled.c:(.text+0x210): undefined reference to `XMoveWindow'
untitled.c:(.text+0x25a): undefined reference to `XDrawLine'
untitled.c:(.text+0x267): undefined reference to `XFlush'
untitled.c:(.text+0x29f): undefined reference to `XDestroyWindow'
untitled.c:(.text+0x2b6): undefined reference to `XCloseDisplay'
collect2: ld returned 1 exit status

Je besoin d'aide ici! A vous...

Dernière modification par mrad (Le 11/06/2008, à 17:26)

Hors ligne

#2 Le 11/06/2008, à 15:09

nicolas.sitbon

Re : Graphisme en C : creation des fenetre.[Résolu]

Dans ton makefile, ajoute

LDFLAGS += -lX11

Hors ligne

#3 Le 11/06/2008, à 15:22

mrad

Re : Graphisme en C : creation des fenetre.[Résolu]

nicolas.sitbon a écrit :

Dans ton makefile, ajoute

LDFLAGS += -lX11

Desolé , je suis un amateur dans C et dans linux, est ce que je peut savoir quoi faire exactement?..Merci!

Hors ligne

#4 Le 11/06/2008, à 15:25

nicolas.sitbon

Re : Graphisme en C : creation des fenetre.[Résolu]

Comment compiles tu ton programme?
- à l'aide d'un IDE ?
- en ligne de commande (dans ce cas donne la commande)?
- autres ?

Hors ligne

#5 Le 11/06/2008, à 15:30

mrad

Re : Graphisme en C : creation des fenetre.[Résolu]

nicolas.sitbon a écrit :

Comment compiles tu ton programme?
- à l'aide d'un IDE ?
- en ligne de commande (dans ce cas donne la commande)?
- autres ?

J'utilise Geany comme editeur et compilateur, j'ai teste aussi avec la commande gcc :

 gcc -c untitled.c
 gcc untitled.o -o untitled

Dernière modification par mrad (Le 11/06/2008, à 15:33)

Hors ligne

#6 Le 11/06/2008, à 15:37

nicolas.sitbon

Re : Graphisme en C : creation des fenetre.[Résolu]

parfait :

gcc -c untitled.c
gcc untitled.o -o untitled -lX11

Parcontre, il faudra tôt ou tard que tu apprenes à régler ton compilateur correctement, ainsi qu'à tester le retour de tes fonctions (et idéalement indenter ton code wink).

Dernière modification par nicolas.sitbon (Le 11/06/2008, à 15:37)

Hors ligne

#7 Le 11/06/2008, à 15:43

mrad

Re : Graphisme en C : creation des fenetre.[Résolu]

Merci, mais il y on a un autre probleme :

**:~$ gcc -c untitled.c
**:~$ gcc untitled.o -o untitled -lx11
/usr/bin/ld: cannot find -lx11
collect2: ld returned 1 exit status

Hors ligne

#8 Le 11/06/2008, à 15:46

azimuth024

Re : Graphisme en C : creation des fenetre.[Résolu]

X majuscule
gcc untitled.o -o untitled -lX11

Dernière modification par azimuth024 (Le 11/06/2008, à 15:46)

Hors ligne

#9 Le 11/06/2008, à 16:01

mrad

Re : Graphisme en C : creation des fenetre.[Résolu]

Merci, j'ai reussi aussi a regler Geany pour inclure -lX11, (Build->Set Inculds And Arguments : ajouter -lX11 a la fin de la case Build)...:)

Hors ligne