Para averiguar qué está buscando el vinculador, ejecútelo en modo detallado.
Por ejemplo, me encontré con este problema al intentar compilar MySQL con soporte ZLIB. Recibí un error como este durante la compilación:
/usr/bin/ld: cannot find -lzlib
Busqué en Google y seguí encontrando diferentes problemas del mismo tipo en los que la gente decía para asegurarse de que el archivo .so realmente existe y, si no es así, crear un enlace simbólico al archivo versionado, por ejemplo, zlib. so.1.2.8. Pero, cuando verifiqué, zlib.so existía. Entonces, pensé, seguramente ese no podría ser el problema.
Encontré otra publicación en Internet que sugería ejecutar make con LD_DEBUG = all:
LD_DEBUG=all make
Aunque obtuve una TONELADA de salida de depuración, en realidad no fue útil. Agregó más confusión que cualquier otra cosa. Entonces, estaba a punto de rendirme.
Entonces, tuve una epifanía. Pensé en verificar el texto de ayuda para el comando ld:
ld --help
A partir de eso, descubrí cómo ejecutar ld en modo detallado (imagine eso):
ld -lzlib --verbose
Este es el resultado que obtuve:
==================================================
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 ...
Entonces, para finalmente arreglarlo y poder compilar MySQL con mi propia versión de ZLIB (en lugar de la versión incluida):
sudo ln -s /usr/lib/libz.so.1.2.8 /usr/lib/libzlib.so
Voila!