[ld/C++] problème de librairis sur linux
Fermé
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
-
14 juin 2006 à 17:14
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 - 19 juin 2006 à 09:21
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 - 19 juin 2006 à 09:21
A voir également:
- [ld/C++] problème de librairis sur linux
- Webrip ld - Forum Internet / Réseaux sociaux
- Émulateur linux ✓ - Forum Linux / Unix
- Linux su - Astuces et Solutions
- Outlook linux - Forum Linux / Unix
- Gunzip linux - Astuces et Solutions
6 réponses
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
14 juin 2006 à 20:48
14 juin 2006 à 20:48
Salut,
Perso j'utilise sans problème le mix des 2 types de bibliothèques statiques et
dynamiques (je fais rarement des bibliothèque dynamique).
Faire une binaire statique nécessite de disposer toutes les bibliothèques en mode
statique. Je ne vois pas comment tu peux t'en sortir autrement.
Sinon ton problème en mode dynamique c'est à l'exécution ou à l'édition de lien ?
A+, crabs
Perso j'utilise sans problème le mix des 2 types de bibliothèques statiques et
dynamiques (je fais rarement des bibliothèque dynamique).
Faire une binaire statique nécessite de disposer toutes les bibliothèques en mode
statique. Je ne vois pas comment tu peux t'en sortir autrement.
Sinon ton problème en mode dynamique c'est à l'exécution ou à l'édition de lien ?
A+, crabs
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
15 juin 2006 à 08:28
15 juin 2006 à 08:28
Salut Crabs.
le problème est à l'éxecution.
la compilation/edition de lien ne pose pas de problème en non static.
C'est pour ça que je voulais lié en static, pour éviter les problèmes de bib dynamique introuvable. Si je comprend bien ce que tu me dit, le "-static" ne passe pas car j'ai certaines bib qui n'existent pas en statique, c'est ça?
Enfin, si quelqu'un pouvai me donner la signification du message d'erreur que j'ai.
le problème est à l'éxecution.
la compilation/edition de lien ne pose pas de problème en non static.
C'est pour ça que je voulais lié en static, pour éviter les problèmes de bib dynamique introuvable. Si je comprend bien ce que tu me dit, le "-static" ne passe pas car j'ai certaines bib qui n'existent pas en statique, c'est ça?
Enfin, si quelqu'un pouvai me donner la signification du message d'erreur que j'ai.
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
15 juin 2006 à 17:13
15 juin 2006 à 17:13
Salut,
Oui pour utiliser -static, toutes les bibliothèques doivent être statiques.
Pour ton problème d'exécution, ajoute /usr/lib64 à la variable d'environnement
LD_LIBRARY_PATH ou dans le fichier /etc/ld.so.conf
Enfin ça me parait bizarre qu'il n'y soit pas, à moins que ton programme ne
soit pas compilé en 64bits -- précise ta distribution, la version de ton noyau
et son mode (32 ou 64bits) ainsi que la nature de ton CPU.
Regardes les pages du manuel de ldd, ld.so et ldconfig.
A+, crabs
Oui pour utiliser -static, toutes les bibliothèques doivent être statiques.
Pour ton problème d'exécution, ajoute /usr/lib64 à la variable d'environnement
LD_LIBRARY_PATH ou dans le fichier /etc/ld.so.conf
Enfin ça me parait bizarre qu'il n'y soit pas, à moins que ton programme ne
soit pas compilé en 64bits -- précise ta distribution, la version de ton noyau
et son mode (32 ou 64bits) ainsi que la nature de ton CPU.
Regardes les pages du manuel de ldd, ld.so et ldconfig.
A+, crabs
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
16 juin 2006 à 11:14
16 juin 2006 à 11:14
Salut.
merci pour ta réponse, mais elle ne marche pas. On m'a déjà conseiller d'utiliser la variable LD_LIBRARY_PATH pour executer un programme ne trouvant pas un bib dyn. Mais chez moi ça ne fonctionne pas: déjà la variable n'est pas toujours existante, et quand elle existe elle ne contient même pas les répertoire habituels (/lib:/usr/lib)
Linux: RedHat 2.6.9-5 avec 4 proc AMD opteron 64bits
Le programme est compilé en 32bits. Mais j'avais compris que les proc 64 bits étaient compatible avec les "anciens" programme 32 et 16 bits.
étant un PC de travail, je n'ai pas les droit root, donc pour modifier /etc/ld.so.conf ...
merci pour ta réponse, mais elle ne marche pas. On m'a déjà conseiller d'utiliser la variable LD_LIBRARY_PATH pour executer un programme ne trouvant pas un bib dyn. Mais chez moi ça ne fonctionne pas: déjà la variable n'est pas toujours existante, et quand elle existe elle ne contient même pas les répertoire habituels (/lib:/usr/lib)
Linux: RedHat 2.6.9-5 avec 4 proc AMD opteron 64bits
Le programme est compilé en 32bits. Mais j'avais compris que les proc 64 bits étaient compatible avec les "anciens" programme 32 et 16 bits.
étant un PC de travail, je n'ai pas les droit root, donc pour modifier /etc/ld.so.conf ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
17 juin 2006 à 14:11
17 juin 2006 à 14:11
Salut,
Effectivement, y a une compatibilité, mais il faut que ton programme soit
compilé dans le même mode que tes bibliothèques dynamiques. Si tu disposes
que des versions 64bits de certaines bibliothèques, tu ne pourra faire qu'un
exécutable en 64bits.
A+, crabs
Effectivement, y a une compatibilité, mais il faut que ton programme soit
compilé dans le même mode que tes bibliothèques dynamiques. Si tu disposes
que des versions 64bits de certaines bibliothèques, tu ne pourra faire qu'un
exécutable en 64bits.
A+, crabs
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
19 juin 2006 à 09:21
19 juin 2006 à 09:21
Salut,
Merci Crabs.
Je comprend mieux le propblème. Il faut que tout soit en 32 ou 64 bits, bib inclues, donc comme je n'ai qu'une version 64 de libg2c, je ne peux pas lancer le programme compiler en 32.
La solution serai de compiler en 32, mais malheuresement, il y a une bib que je n'ai qu'en 32 (libsilo.a).
j'ai donc deux solution : trouver libg2c en 32, ou libsilo en 64...
J'espère que je m'en sortirai, et encore merci.
Merci Crabs.
Je comprend mieux le propblème. Il faut que tout soit en 32 ou 64 bits, bib inclues, donc comme je n'ai qu'une version 64 de libg2c, je ne peux pas lancer le programme compiler en 32.
La solution serai de compiler en 32, mais malheuresement, il y a une bib que je n'ai qu'en 32 (libsilo.a).
j'ai donc deux solution : trouver libg2c en 32, ou libsilo en 64...
J'espère que je m'en sortirai, et encore merci.