Vous trouverez la liste des chemins (c'est-à-dire la liste des variables contenant les chemins) dans la page de manuel de dyld. Vous pouvez afficher la page de manuel en exécutant la commande suivante dans le Terminal :
man dyld
Par exemple, vous pourriez avoir une différence avec LC_RPATH ou similaire. Je suggère d'imprimer l'environnement sur les deux machines et de comparer les notes.
Si vous venez d'un environnement Linux et que vous vous attendez à trouver un fichier comme /etc/ld.so.conf
sur Linux, sachez qu'un tel fichier n'existe pas sur macOS.
Une autre raison de la différence entre le code pourrait être que l'un des environnements n'a pas mis à jour le cache dyld. Vous pouvez exécuter la commande suivante pour mettre à jour le cache :
update_dyld_shared_cache
N'oubliez pas de redémarrer ensuite pour réellement utiliser le cache.
En général, il semble que le programme que vous utilisez avec dlopen soit programmé de manière un peu étrange. En général, les programmes n'utilisent pas dlopen() avec divers dylib à des chemins non relatifs à l'exécutable, le chargeur ou l'rpath intégré au programme dans des cas rares.