#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]
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]
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 ).
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