Bonjour,
Je ne pensais pas me prendre la tête avec un truc aussi bête alors je demande de l'aide via ce forum Je suis sous Debian et j'utilise GCC. J'ai créé des librairie statiques pour un projet via la commande "ar". J'ai écrit un programme qui utilise ma suite de librairie statique ainsi qu'OpenGL et d'autre libs utiles (pthread, Cg, ...) et donc lorsque j'ai un problème lors du link. Soit je link avec la commande du style :
Or dans ce cas il me dit qu'il ne peut trouver -lmyLib1 car vu que c'est des librairies statiques elles ont l'extention .a (libmyLib.a) et non .so. J'ai donc mi sle flag -static, mais là il ne me trouve plus -lGL puisqu'elle est en .so elle... J'ai donc essayer la combinaison de -static et de -dynamic au cas où :
Code : Sélectionner tout - Visualiser dans une fenêtre à part gcc -L../lib -lmyLib -lGL -o libTest libTest.o
Mais cela ne fonctionne pas non plus (en fait je m'y attendais ). Il me dit toujours qu'il ne peux trouver -lGL. Je pourrais compiler mes librairies en dynamique, mais je préfèrerais qu'elles soient statiques (pour la portabilitée) et à l'inverse, je veux garder des librairies en dynamique pour ne pas que ce soit trop lourd.
Code : Sélectionner tout - Visualiser dans une fenêtre à part gcc -L../lib -static -lmyLib -dynamic -lGL -o libTest libTest.o
Ma question est donc simple : comment fait-on pour linker à la fois des librairies statiques et des librairies dynamique à un excutable ?
Merci d'avance pour votre aide
EDIT : Je suis allé un peu vite en fait. Lorsque je ne met pas le -static, il ne me trouve pas de référence vers la fonction définie dans mylib. Peut-être un problème de librairie donc. Je recherche sur cette piste.
Partager