Pour comprendre ce que l'éditeur de liens est à la recherche d', l'exécuter en mode verbose.
Par exemple, j'ai rencontré ce problème tout en essayant de compiler MySQL avec ZLIB soutien. J'ai reçu une erreur comme ceci lors de la compilation:
/usr/bin/ld: cannot find -lzlib
J'ai fait quelques Googl require et tenu à venir à travers les différentes questions du même genre où les gens puissent dire à assurez-vous que l' .si le fichier existe et si elle ne le fait pas, créer un lien symbolique vers la version du fichier, par exemple, zlib..1.2.8. Mais, quand j'ai vérifié, zlib.donc, N'existe pas. Alors, j'ai pensé, sûrement, qui ne pouvait pas être le problème.
Je suis tombé sur un autre post sur les Internets que suggéré d'exécuter le faire avec LD_DEBUG=tous:
LD_DEBUG=all make
Bien que j'ai une TONNE de sortie de débogage, il n'est pas vraiment utile. Elle a ajouté plus de confusion qu'autre chose. Donc, j'étais sur le point d'abandonner.
Ensuite, j'ai eu une révélation. J'ai pensé à vérifier le texte d'aide pour le ld de commande:
ld --help
De cela, j'ai compris comment faire pour exécuter ld en mode verbose (imaginez que):
ld -lzlib --verbose
C'est le résultat que j'ai obtenu:
==================================================
attempt to open /usr/x86_64-linux-gnu/lib64/libzlib.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libzlib.a failed
attempt to open /usr/local/lib64/libzlib.so failed
attempt to open /usr/local/lib64/libzlib.a failed
attempt to open /lib64/libzlib.so failed
attempt to open /lib64/libzlib.a failed
attempt to open /usr/lib64/libzlib.so failed
attempt to open /usr/lib64/libzlib.a failed
attempt to open /usr/x86_64-linux-gnu/lib/libzlib.so failed
attempt to open /usr/x86_64-linux-gnu/lib/libzlib.a failed
attempt to open /usr/local/lib/libzlib.so failed
attempt to open /usr/local/lib/libzlib.a failed
attempt to open /lib/libzlib.so failed
attempt to open /lib/libzlib.a failed
attempt to open /usr/lib/libzlib.so failed
attempt to open /usr/lib/libzlib.a failed
/usr/bin/ld.bfd.real: cannot find -lzlib
Ding, ding, ding...
Ainsi, pour enfin régler le problème, alors je pourrais compiler MySQL avec ma propre version de ZLIB (plutôt que la version intégrée):
sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so
Voila!