54 votes

ld: avertissement: le fichier de remplacement basé sur du texte n'est pas synchronisé. Retour au fichier de bibliothèque pour la liaison

Lorsque j'essaie de sourceCpp , il donne un avertissement:

ld: avertissement: le fichier de remplacement basé sur du texte /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd et le fichier de bibliothèque /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation sont désynchronisés. Retour au fichier de bibliothèque pour la liaison.

Mais la fonction fonctionne réellement. Je me demandais simplement comment résoudre cet avertissement.

36voto

Paul Berg Points 567

À l'aide de MacOS Mojave 10.14.2, la solution pour moi a été l'utilisation de la solution de ce commentaire sur GitHub:

export SDKROOT=macosx10.14

Mettre la ligne ci-dessus dans votre ~/.bash_profile. Remplacer 10.14 avec votre propre version de MacOSX outils Xcode. Savoir quelle version vous avez en faisant:

xcrun --show-sdk-path

Il permet d'imprimer quelque chose comme:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk

Il suffit de prendre le dernier mot, le faire tous les plafonds moins élevés et de la remplacer dans l' export commande ci-dessus.

Mise À Jour Sep 2019

Dans la dernière version, ils ont supprimé le numéro de version du sdk. Il suffit de saisir le chemin d'accès complet et l'exporter en tant que SDKROOT, comme ceci:

export SDKROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk"

13voto

jiyongdong Points 340

J'ai également rencontré ce problème lors de la compilation du code Go sur mon Mac.

Les fichiers tld n'étaient pas synchronisés dans /System/Library/Frameworks/ .

La solution :

Relie simplement les cadres récents de MacOSX.sdk à /Library/Frameworks/

 sudo ln -s  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework /Library/Frameworks/CoreFoundation.framework
 

6voto

Highstead Points 389

Edit: cela semble avoir cessé de fonctionner après le 10.13.16. L'essayer ne nuira pas à votre Mac après la réinstallation, mais je ne sais pas comment le réparer à l'avenir.

Je l'ai rencontré récemment, il suffit de supprimer les outils de ligne de commande pour mac et de réinstaller.

 $ rm -rf /Library/Developer/CommandLineTools
$ xcode-select --install
 

Après ces étapes, vous verrez une fenêtre pop pour installer la nouvelle version des outils.

3voto

UberFarmer Points 39

La réinstallation peut aider, mais pas non plus.

C'est la faute d'Apple et ils doivent le réparer avec une autre mise à jour des outils de ligne de commande.

Ignorez simplement l'avertissement pour l'instant.

(Voir un tas d'autres personnes rencontrant le problème ici: https://github.com/vim/vim/issues/3445 et ici: https://github.com/golang/go/issues/26073 )

0voto

Qiang Kou Points 462

Je pense que cela n'a rien à voir avec Rcpp.

Est-ce lié à votre système.

Je montre d'abord les lignes de l'une à déterminer fichier ci-dessous. C'est juste un fichier texte. Vous pouvez l'ouvrir avec un éditeur de texte.

--- !tapi-tbd-v3
archs:           [ i386, x86_64, x86_64h ]
uuids:           [ 'i386: 17321B27-67AB-3D26-B9DF-A69624B1C82B', 'x86_64: 358C547D-E227-3228-8218-62327F4605C8', 
                   'x86_64h: 945E5C0A-86C5-336E-A64F-5BF06E78985A' ]
platform:        macosx
install-name:    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
current-version: 1452.23
compatibility-version: 150
exports:         
  - archs:           [ i386 ]
    symbols:         [ '$ld$add$os10.5$.objc_class_name_NSObject', '$ld$add$os10.6$.objc_class_name_NSObject', 
                       '$ld$add$os10.7$.objc_class_name_NSObject', '$ld$hide$os10.4$.objc_class_name_NSArray', 
                       '$ld$hide$os10.4$.objc_class_name_NSCalendar', '$ld$hide$os10.4$.objc_class_name_NSData', 
...

Ce que je comprends, la tbd fichier contient la version et l'emplacement de la réelle fichier de bibliothèque. C'est comme un "lien". (Juste ma compréhension personnelle. Veuillez me corriger si c'est faux.)

Après la mise à jour de Xcode, votre tbd fichier et réel de la bibliothèque sont désynchronisés. Ensuite, vous avez obtenu de l'avertissement.

Je pense que vous pouvez ignorer cet avertissement, pour le moment, depuis votre compilateur est tombé en arrière et a trouvé le bon bibliothèque.

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