407 votes

Dyld: Bibliothèque non chargée ... Raison : Image non trouvée

Lorsque j'essaie d'exécuter un exécutable que j'ai reçu sur Mac OS X, j'obtiens l'erreur suivante

dyld: Library not loaded: libboost_atomic.dylib
  Referenced from: /Users/"Répertoire dans lequel se trouve mon exécutable"
  Reason: image not found
Trace/BPT trap:5

J'ai installé les bibliothèques boost et elles se trouvent dans /opt/local/lib. Je pense que le problème a quelque chose à voir avec l'exécutable ne regardant que dans le répertoire dans lequel il se trouve, car quand je colle 'libboost_atomic.dylib' là-bas, il ne le remarque plus. Malheureusement, il se plaint alors de ne pas trouver la prochaine bibliothèque boost.

Y a-t-il un moyen facile de corriger cela?

0 votes

Si vous avez encore des problèmes, utilisez la méthode de ce sujet

0 votes

Essayez de désinstaller python3.7.3 en utilisant ceci : huybien.com/how-to-completely-uninstall-python-on-macos

8voto

Merlin069 Points 10688

Vous pouvez utiliser la commande otool avec l'option -L pour l'exécutable, qui affichera où l'exécutable attend que ces bibliothèques soient.

Si le chemin de ces bibliothèques doit être modifié, utilisez la commande install_name_tool, qui vous permet de définir le chemin des bibliothèques.

7voto

Pradeep Reddy Kypa Points 1388

Créer les frameworks dans les phases de construction Optionnelles a fonctionné pour moi.

Dans Xcode -> Cible -> Phases de construction -> Lier les bibliothèques binaires -> Assurez-vous que les frameworks récemment ajoutés, le cas échéant, sont marqués comme Optionnels

5voto

Lucio Paiva Points 368

Je suis arrivé ici en essayant d'exécuter un programme que je viens de compiler en utilisant CMake. Lorsque j'essaie de le lancer, il se plaint en disant:

dyld: Library not loaded: libboost_system.dylib
  Referenced from: /Users/path/to/my/executable
  Reason: image not found

J'ai contourné le problème en disant à CMake d'utiliser la version statique de Boost, au lieu de lui permettre d'utiliser la version dynamique:

set(Boost_USE_STATIC_LIBS ON)

3voto

user3835452 Points 31

Je le répare en utilisant brew install libpng

3voto

cn00 Points 39

Si vous utilisez cmake, ajoutez DYLIB_INSTALL_NAME_BASE "@rpath" aux propriétés de la cible :

set_target_properties(target_dyLib PROPERTIES
        # # for FRAMEWORK begin
        # FRAMEWORK TRUE
        # FRAMEWORK_VERSION C
        # MACOSX_FRAMEWORK_IDENTIFIER com.cmake.targetname
        # MACOSX_FRAMEWORK_INFO_PLIST ./Info.plist
        # PUBLIC_HEADER targetname.h
        # # for FRAMEWORK end
        IPHONEOS_DEPLOYMENT_TARGET "8.0"
        DYLIB_INSTALL_NAME_BASE "@rpath" # c'est le point clé
        XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
        DEVELOPMENT_TEAM "${DEVELOPMENT_TEAM}"
    )

ou dans un projet de bibliothèque dynamique Xcode Cible -> Paramètres de construction définissez Base d'Installation de la Bibliothèque Dynamique sur @rpath

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X