Lorsque j'utilise ldd
sous Linux, il m'indique immédiatement s'il manque quelque chose, c'est-à-dire
ldd -d some_lib.so
libexample.so => not found
libex.2.so => not found
libm.so.6 => /lib/libm.so.6 (0xf5860000)
libdl.so.2 => /lib/libdl.so.2 (0xf785b000)
libc.so.6 => /lib/libc.so.6 (0xf78a9000)
/lib/ld-linux.so.2 (0x46b4c000)
Sous Mac OS, il n'y a pas de ldd
et les gens recommandent d'utiliser otool -L
mais cela montre quelles bibliothèques partagées sont attendues, et non pas si elles sont présentes ou non. Une autre approche consisterait à utiliser dtruss
Mais cela nécessite sudo, et d'après mon expérience, l'application se comporte très différemment lorsqu'elle est traitée, et elle échoue pour une raison totalement différente (et avant qu'elle n'essaie de charger la .dylib gênante).
Si vous soupçonnez l'absence d'une bibliothèque partagée, quelle est l'approche standard pour savoir de laquelle il s'agit sur le Mac ?