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.
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
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.
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.
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 )
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.