Con mi entendimiento, si un binario (por ejemplo, rsync) hace referencia (depende de) una biblioteca estática (libxxx.a) y la libxxx.a se actualiza, el binario debe ser recompilado para reflejar la actualización de libxxx.a. ¿Es correcto?
Y luego, ¿qué pasa si un binario hace referencia (depende de) una biblioteca dinámica (libxxx.dylib)? ¿Debería ser recompilado también?
La razón por la que pregunto esto es que otool -L rsync
devuelve la versión antigua de libxxhash.0.dylib incluso aunque actualicé xxhash de 0.8.1 a 0.8.2
roushi@roushinoMacBook-Air lib % ls -l libxxhash.*
-rwxr-xr-x 1 root wheel 53256 10 28 21:12 libxxhash.0.8.2.dylib
lrwxr-xr-x 1 root wheel 21 10 28 21:12 libxxhash.0.dylib -> libxxhash.0.8.2.dylib
-rw-r--r-- 1 root wheel 43096 10 28 21:12 libxxhash.a
lrwxr-xr-x 1 root wheel 21 10 28 21:12 libxxhash.dylib -> libxxhash.0.8.2.dylib
roushi@roushinoMacBook-Air lib % file libxxhash.a
libxxhash.a: current ar archive random library
roushi@roushinoMacBook-Air lib % otool -L `which rsync`
/usr/local/bin/rsync:
/usr/lib/libz.1.dylib (versión de compatibilidad 1.0.0, versión actual 1.2.11)
/usr/local/lib/libpopt.0.dylib (versión de compatibilidad 1.0.0, versión actual 1.2.0)
/usr/lib/libiconv.2.dylib (versión de compatibilidad 7.0.0, versión actual 7.0.0)
/usr/local/lib/liblz4.1.dylib (versión de compatibilidad 1.0.0, versión actual 1.9.4)
/usr/local/lib/libzstd.1.dylib (versión de compatibilidad 1.0.0, versión actual 1.5.5)
/usr/local/lib/libxxhash.0.dylib (versión de compatibilidad 0.0.0, versión actual 0.8.1)
/usr/local/lib/libcrypto.1.1.dylib (versión de compatibilidad 1.1.0, versión actual 1.1.0)
/usr/lib/libSystem.B.dylib (versión de compatibilidad 1.0.0, versión actual 1319.100.3)
/usr/lib/libcharset.1.dylib (versión de compatibilidad 2.0.0, versión actual 2.0.0)
Como quizás sepa, no estoy usando Homebrew...