Je pense que tes fonctions "XOpenDisplay", "XMapWindow", "XSelectInput"; enfin toutes les fonctions non définies font partie d'une librairie mais comme je ne sais pas laquelle je vais la symboliser par "/usr/X11R6/lib/Xlib.a"
Il faut, lorsque tu compiles ton programme, que tu lui dises dans quelle librairie il trouvera ces fonctions spéciales. le compilateur n'inclut par défaut que la librairie principale du C "/usr/lib/libc.a". Si tu en utilises d'autres, tu dois les indiquer explicitement.
Tu dois compiler ton programme en utilisant la syntaxe suivante:
g++ -c essai.c
g++ /usr/X11R6/lib/Xlib.a essai.o -o essai
Ou bien alors, si tu n'as qu'un seul fichier source
g++ /usr/X11R6/lib/Xlib.a essai.c -o essai
Si t'as d'autres librairies à indiquer, tu peux les mettre à la suite de la première. Ex:
g++ /usr/X11R6/lib/Xlib.a /usr/lib/libm.a /usr/lib/libc.a essai.c -o essai
Pour QT, t'auras le même problème. Il faut que tu compiles ton programme en lui disant où se trouve la librairie QT
Parfois une librairie se nomme ".so" et pas ".a" (comme QT par exemple). Il s'agit alors d'une librairie dynamique. Elle ne sera pas incluse au code exécutable donc tu devras avoir la librairie sur ta machine si tu exécute le programme
1) Tu compiles comme ci-dessus en y indiquant le nom de la librairie (le nom .so)
2) Tu vérifies que ta variable "LDPATH" contient bien tous les répertoires suceptibles de contenir une librairie ".so"; chaque répertoire séparé du suivant par ":"
Et normallement, tu ne devrais plus avoir de pb...
Poste le Saturday 14 February 2004 01:30:21