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 :
avec -Dxxx des flags de compil (exemple : -DLINUX)
Code : Sélectionner tout - Visualiser dans une fenêtre à part gcc -c -g -fPIC -std=c89 -ansi -Dxxx -o fic.o fic.c
Pour linker la lib:
Pour créer l'exécutable j'utilise:
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
En réponse j'ai:
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
- c_VG_revision est déféni dans un fichier .h inclue dans 2 fichiers .c de la lib
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' ...
- 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.
Partager