Je travaille avec un déploiement Linux intégré et utilise une chaîne d'outils de compilateur croisée qui ne compile pas les appels de la fonction de bibliothèque I2C.
Comment puis-je déterminer les versions précises des bibliothèques sur le système afin Que je puisse reconstruire la chaîne d'outils? strong> P> Je n'ai pas l'intention de remplacer les bibliothèques déployées, car je sais qu'ils travaillent (y compris I2C), je crois donc avoir besoin de ce qui suit: < / p> Je pense que je peux supposer à partir de ce qui suit que la bibliothèque Binutils est la version 2.2.5. Le noyau est modifié pour lequel j'ai la source. P>
3 Réponses :
pour glibc: p>
sonne peut-être étrange pour exécuter un fichier de sorte, mais doit imprimer des informations de version dans ce cas P>
pour la version du noyau utilise Pour les BINUTILS L'analyse de la sortie de /lib/libc.so.6 code> p>
uname code> p>
LD --Version code> peut donner ce que vous attendez, le même pour
GCC --Version code>. C'est un peu fastidieux mais je ne sais pas d'une autre manière. P>
Puisque je connais la version du noyau, je n'ai pas essayé uname code>, sur mon système, il n'a pas fonctionné.
Version Code> me donne l'amour.
Comment une bibliothèque peut-elle aussi être une exécutable?
Ceci est obsolète à cause des mises en page des plus récentes multi-muladateurs.
@Amias pas obsolète sur mon installation Ubuntu 18.04, bien que la bibliothèque ait augmenté quelques versions au cours des 8 dernières années.
Sur My Centos 7 Installation, localiser libc.so code> renvoie
/usr/lib64/libc.so.6 code>. (C'est un lien symbolique à
libc-2.17.so code>.)
Pour connaître la version actuelle installée de GLIBC, veuillez compiler et exécuter le code C suivant.
#include <stdio.h> #include <gnu/libc-version.h> int main (void) { puts (gnu_get_libc_version ()); return 0; }
Sur Fedora 29, /Lib64/LIBC.SO.6 --Version code> Imprime
Bibliothèque de gnu C (GNU LIBC) Version de la version 2.28 Code> i>.
Une réponse plus complète peut être trouvée en exécutant sur un système récent. Cela vous donnera des résultats comme celui-ci montrant que j'utilise glibc 2.28 ici sur Ubuntu 18.10 P> /lib/x86_64-linux-gnu/libc-2.28.so
/lib/x86_64-linux-gnu/libcrypt-2.28.so
/lib/i386-linux-gnu/libc-2.28.so
/lib/i386-linux-gnu/libcrypt-2.28.so