web-dev-qa-db-fra.com

ld: warning: les fichiers de raccord textuels ne sont pas synchronisés. Retourner dans le fichier de bibliothèque pour la liaison

Lorsque j'essaie de sourceCpp, un avertissement est émis:

ld: avertissement: fichier de raccord texte /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd et le fichier de bibliothèque /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation sont désynchronisés. Retourner dans le fichier de bibliothèque pour la liaison.

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

44
MOOn

J'ai eu ce problème lors de la compilation du code Go sur mon Mac aussi.

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

La solution:

Lie simplement les frameworks 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
10
jiyongdong

Sous MacOS Mojave 10.14.2, le correctif pour moi était d’utiliser la solution de ce commentaire sur GitHub :

export SDKROOT=macosx10.14

Mettez la ligne ci-dessus dans votre ~/.bash_profile. Remplacez 10.14 par votre version des outils MacOSX Xcode. Découvrez quelle version vous avez en faisant:

xcrun --show-sdk-path

Il va imprimer quelque chose comme:

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

Saisissez simplement le dernier mot, faites-le en majuscule et remplacez-le dans la commande export ci-dessus.

9
Paul Berg

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

Récemment rencontré, supprimez simplement les outils de ligne de commande pour mac et réinstallez-les.

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

Après ces étapes, vous verrez apparaître un pop pour installer la nouvelle version des outils.

6
Highstead

Réinstaller peut aider, mais peut aussi pas.

C'est la faute d'Apple et ils doivent résoudre le problème 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/2607 )

3
UberFarmer

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

Ceci est lié à votre système.

Je montre les premières lignes d'un fichier à déterminer ci-dessous. C'est juste un fichier texte. Vous pouvez l'ouvrir à l'aide d'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', 
...

Si j'ai bien compris, le fichier tbd contient la version et l'emplacement du fichier de bibliothèque réel. C'est comme un "lien". (Juste ma compréhension personnelle. S'il vous plaît, corrigez-moi si c'est faux.)

Après la mise à niveau de Xcode, votre fichier tbd et votre bibliothèque réelle ne sont plus synchronisés. Ensuite, vous avez l'avertissement.

Je pense que vous pouvez ignorer cet avertissement pour l'instant, car votre compilateur s'est replié et a trouvé la bonne bibliothèque.

0
Qiang Kou