2010-07-09 3 views
0

Actuellement, lors de la compilation d'un programme C qui utilise la fonction de bibliothèque pthread, je dois spécifier explicitement l'option de compilation -lpthread. Veuillez suggérer un moyen de configurer ldconfig pour que la bibliothèque pthread puisse être utilisée sans la spécifier sur la ligne de commande.Comment utiliser ldconfig pour ajouter la bibliothèque pthread

-p actuellement lpthread donne la sortie suivante: =

[[email protected] lib]# ldconfig -p | grep pthread 
    libpthread.so.0 (libc6, OS ABI: Linux 2.6.9) => /lib/libpthread.so.0 
    libOpenIPMIpthread.so.0 (libc6) => /usr/lib/libOpenIPMIpthread.so.0 

Répondre

0

Je ne crois pas que vous puissiez le faire. Les programmes LD_LIBRARY_PATH et ldconfig sont utilisés pour configurer les chemins d'accès aux bibliothèques partagées utilisées pour résoudre les dépendances dans votre exécutable au runtime.

Lorsque vous compilation devrez spécifier les bibliothèques à inclure dans la phase de liaison, à savoir -lpthread

0

Vous pouvez définir la variable d'env LD_LIBRARY_PATH.

+0

Existe-t-il un moyen de sortir sans définir le LD_LIBRARY_PATH? – Ashish

0

La bibliothèque pthreads est une bibliothèque dynamique . Cela signifie que, pour utiliser sa fonctionnalité, un fichier distinct de votre binaire doit être disponible au moment de l'exécution.

Vous pouvez le faire de plusieurs façons. La définition de -lpthread définira automatiquement les indicateurs du compilateur souhaités. Fournir le fichier partagé via LD_PRELOAD fera la même chose. Ou vous avez votre programme pthreaded explicitement la bibliothèque dlopen.

Mais la bonne façon de le faire est de fournir les bons commutateurs de compilation.

Questions connexes