ld: warning: el archivo de código auxiliar basado en texto no está sincronizado. Volviendo a la biblioteca para enlazar
xcode macos (4)
Creo que esto no tiene nada que ver con Rcpp.
Esto está relacionado con su sistema.
Muestro las primeras líneas de un archivo tbd a continuación. Es solo un archivo de texto. Puedes abrirlo usando un editor de texto.
--- !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'',
...
Según tengo entendido, el archivo tbd contiene la versión y la ubicación del archivo de biblioteca real. Es como un "enlace". (Solo mi entendimiento personal. Por favor corríjame si esto está mal).
Después de la actualización de Xcode, su archivo tbd y su biblioteca real no están sincronizados. Entonces tienes la advertencia.
Creo que puedes ignorar esta advertencia por ahora, ya que tu compilador ha retrocedido y ha encontrado la biblioteca correcta.
Cuando estoy tratando de sourceCpp
, da una advertencia:
ld: advertencia: archivo de resguardo basado en texto /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd y el archivo de biblioteca /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation no están sincronizados. Volviendo a la biblioteca para enlazar.
Pero la función realmente funciona. Sólo me preguntaba cómo resolver esta advertencia.
Reinstalar puede ayudar, pero también puede que no.
Es culpa de Apple y necesitan repararlo con otra actualización de herramientas de línea de comandos.
Solo ignora la advertencia por ahora.
(Vea un grupo de otras personas que experimentan el problema aquí: https://github.com/vim/vim/issues/3445 y aquí: https://github.com/golang/go/issues/26073 )
Tuve este problema al compilar el código Go en mi Mac también.
Los archivos tld no estaban sincronizados en /System/Library/Frameworks/
.
La solución :
Solo vincula los marcos recientes de MacOSX.sdk a /Library/Frameworks/
sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework /Library/Frameworks/CoreFoundation.framework
Edición: esto parece haber dejado de funcionar después de la 10.13.16. Intentarlo no dañará tu Mac después de la reinstalación, pero no estoy seguro de cómo solucionarlo en el futuro.
Encontré esto recientemente, simplemente elimine las herramientas de línea de comandos para mac y vuelva a instalarlas.
$ rm -rf /Library/Developer/CommandLineTools
$ xcode-select --install
Después de estos pasos, verá una ventana emergente para instalar la nueva versión de las herramientas.