Bonjour,
j'ai fait un petit programme en C++ avec Qt 4. Ca a compilé en dynamique (je n'y arrive pas en statique, j'ai installé les rpms libqt-static, mais ca veut pas, même en mettant CCFLAGS += static). Donc quand je le fait tourner sur une machine ou les libs ne sont pas installées, j'ai le message d'erreur disant qu'il ne peut pas trouver libQtGui.so.4. J'ai alors récupéré ce fichier et copié dans le même répertoire que l'exécutable et créé un script ou je redéfini LD_LIBRARY_PATH comme étant ce répertoire afin qu'il retrouve les bibliothèques, et démarre l'exécutable, mais ca ne marche pas. Auriez-vous une idée de comment m'en sortir ?
D'avance merci.
# ldconfig ?
Posté par Ben (site web personnel) . Évalué à 2.
Pour info, ldconfig lit LD_LIBRARY_PATH (entr autres) et génère /etc/ld.so.cache. mais il faut etre ROOT pour le faire.
Il doit y avoir un moyen de le faire sans etre ROOT: regarde ldconfig --help.
Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie
[^] # Re: ldconfig ?
Posté par 桃白白 . Évalué à 3.
Si je regarde le script de démarrage de (qt)designer, je vois qu'ils redéfinissent cette variable mais je ne vois pas de ldconfig
# static
Posté par 桃白白 . Évalué à 2.
# et si tu plaçais la bibliothèque là où elle doit être ?
Posté par slack . Évalué à 2.
ldconfig
Puis pour vérifier que la bibliothèque est bien trouvée par le système :
ldd <mon executable>
[^] # Re: et si tu plaçais la bibliothèque là où elle doit être ?
Posté par 桃白白 . Évalué à 2.
[^] # Re: et si tu plaçais la bibliothèque là où elle doit être ?
Posté par 桃白白 . Évalué à 2.
#!/bin/sh
MYDIR=~
if [ -z "$LD_LIBRARY_PATH" ]; then
LD_LIBRARY_PATH=~/Program
else
LD_LIBRARY_PATH=~/Program:$LD_LIBRARY_PATH
fi
export LD_LIBRARY_PATH
exec $MYDIR/Program/Program "$@"
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.