2
votes

dyld: bibliothèque non chargée; Image llbuild introuvable

J'ai utilisé swift package init --type executable .

J'ai déjà essayé de configurer les outils de ligne de commande xcode sur le chemin.

L'erreur suivante se produit:

dyld: Bibliothèque non chargée: @ rpath / llbuild.framework / Versions / A / llbuild Référencé de: / Bibliothèque / Developer / CommandLineTools / usr / bin / swift-package Raison: image introuvable


0 commentaires

4 Réponses :


0
votes

J'ai rencontré le même problème. Fondamentalement, le framework ou la bibliothèque n'est pas correctement lié dans le projet.

Si vous effectuez un glisser-déposer du framework dans un projet xcode, vous devrez également le lier dans des frameworks incorporés. (En gros, vous devrez faire glisser et déposer le cadre dans la section des cadres incorporés)

Voir l'image ci-dessous.

 entrez la description de l'image ici


3 commentaires

Je n'utilise ni xcode ni aucun framework. Je veux l'utiliser comme outil de ligne de commande régulier. Comment résoudre ce problème dans une situation de ligne de commande?


Eh bien, vous devez aller dans le répertoire .xcodeproj et ouvrir project.pbxproj dans textedit et l'ajouter par vous-même et je ne recommanderais pas cette façon car c'est compliqué et vous pouvez facilement gâcher le projet. Le moyen le plus simple et le plus simple serait d'ouvrir le projet dans xcode et de le glisser-déposer dans le cadre dans un cadre intégré


Je ne suis dans aucun projet. Comment puis-je résoudre ce problème dans bash? Je veux corriger pour la ligne de commande, pas pour un projet spécifique.



0
votes

Il y avait cette mauvaise configuration dans bash_profile / Library / Developer / CommandLineTools / usr / bin pour le chemin. Je viens de le supprimer. Correction du problème. quel swift devrait aboutir à / usr / bin / swift .


0 commentaires

2
votes

J'ai dû entrer dans la préférence pour xcode et sous Emplacements, définir les outils de ligne de commande sur la version correcte. Il était vide lorsque je l'ai ouvert pour la première fois.


1 commentaires

C'était la cause principale pour moi lorsque j'ai rencontré ce problème. Merci!



0
votes

J'ai eu le même problème. Je voulais faire du codage de ligne de commande simple mais je ne voulais pas installer le gonflement Xcode complet. J'ai installé uniquement les outils de ligne de commande sur Mojave 10.14.6.

Je pourrais appeler swiftc pour compiler un fichier à partir de la ligne de commande qui faisait tout ce dont j'avais besoin. (Je ne me souviens pas où j'ai trouvé une référence pour pouvoir faire cela, mais en gros, vous appelez simplement 'swiftc filename.swift' et vous êtes bon.)

Mais cela m'a énervé que de coder le " »(c'est-à-dire la façon dont la plupart des didacticiels sur Internet veulent que vous le fassiez) a échoué. Le truc "swift package init ..." n'arrêtait pas de s'emballer avec l'erreur postée dans la question ci-dessus ici. Donc, je suis obsédé par le réparer.

Donc l'erreur dit que swift-package ne trouve pas d'outil appelé llbuild.

J'ai trouvé que l'exécutable llbuild existait réellement sur mon machine à:

/Library/Developer/CommandLineTools/usr/lib/swift/pm/llbuild/llbuild.framework/

L'erreur, alors, est parce que swift-package n'est pas ' Je cherche l'outil dans ce répertoire.

(En guise de remarque, plus tôt dans ma quête pour corriger cette erreur, j'ai essayé d'ajouter des chemins à mon .bash_profile. Aucune de ces tentatives n'a fonctionné. Je peux ' Je me souviens maintenant si j'ai déjà essayé d'ajouter ce chemin complet et que je suis trop paresseux pour essayer maintenant.)

J'ai creusé un peu plus. Quelqu'un quelque part sur Internet a souligné que la variable @rpath (référencée dans le message d'erreur) définie dans les applications peut être découverte avec otools. J'ai utilisé otools sur swift-package et j'ai trouvé que son @rpath semblait pointer vers / usr / lib. J'ai remarqué qu'il y avait une structure ... / usr / lib / ... à l'emplacement de llbuild mentionné ci-dessus. J'ai imaginé que swift-package cherchait dans / usr / lib au lieu du répertoire où se trouvait réellement le fichier. J'ai donc lié le répertoire où llbuild est vraiment dans le répertoire / usr / lib et le tour est joué! Cela a fonctionné.

La plupart des gens qui ont besoin de faire cela sauront probablement comment créer un lien symbolique d'un répertoire, mais juste pour être minutieux, c'est ce qui a résolu le problème pour moi en tant que root ou utiliser sudo si vous voulez:

cd /usr/lib
ln -s /Library/Developer/CommandLineTools/usr/lib/swift/pm/llbuild/llbuild.framework/ .

Notez ce point final ici. C'est nécessaire.

En guise de remarque, j'avais activé la protection de l'intégrité du système, ce qui interdit de créer des liens symboliques dans / usr / lib, j'ai donc dû redémarrer et désactiver SIP à partir de la connexion de récupération (redémarrer et maintenir down Command + R) avant que je puisse faire cela.

De plus, notez que rien de tout cela ne résolvait nécessairement le problème sous-jacent que j'avais de pouvoir créer des packages rapides à partir de la ligne de commande - je pourrais maintenant utiliser "swift package init" mais je ne pouvais pas utiliser "swift run" ou faire autre chose d'utile. J'ai posté ceci uniquement pour donner des indices aux autres quand ils vont creuser car j'ai cherché beaucoup d'endroits et je n'ai pas eu beaucoup de chance.


0 commentaires