Salut,
je crois que je vais devenir dingue avec ce code!!!
Alors, avant que le pc ne finisse par apprendre à voler, je viens chercher de l'aide sur le forum...
Ma config : PC sous Linux, code : c, compilo : gcc.
Voici donc mon soucis : j'essai de créer une bibliothèque partagée libOutil.so et un exécutable essai qui s'appuie dessus.
Pour créer la lib, j'ai plusieurs fichiers .c et .h. Certains .c incluent des .h que j'ai fait et d'autres .h comme assrt.h, ou Xm/Xm.h.
Pour compiler et linker j'utilise un makefile, en gros pour chaque .c (fic.c) j'utlise la règle suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 gcc -c -g -fPIC -std=c89 -ansi -Dxxx -o fic.o fic.c
avec -Dxxx des flags de compil (exemple : -DLINUX)
Pour linker la lib:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
gcc -o libOutil.so fic1.o fic2.o ... -L/usr/X11R6/lib -lXm -lXt -lX11 -shared
Pour créer l'exécutable j'utilise:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
gcc -c essai.c -g -fPIC -std=c89 -ansi -Dxxx
gcc -o essai essai.o -g -fPIC -std=c89 -ansi -Dxxx  -L/usr/X11R6/lib -lXm -lXt -lX11 -lOutil
En réponse j'ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
libOutils.so: undefined reference to 'UxDisplay'
libOutils.so: undefined reference to 'UxScreen'
libOutils.so: undefined reference to 'assert'
libOutils.so: undefined reference to ''c_VG_revision'
...
- c_VG_revision est déféni dans un fichier .h inclue dans 2 fichiers .c de la lib
- les autres sont définies dans des .h de X11R6

Voilà, est-ce que quelqu'un peut m'aider ? (si ce n'est pas conpréhensible dite-le).
Cordialement,
Jula.