2016-09-21 1 views
9

Récemment, j'ai installé Microsoft R Open 3.3.1 sur mon MacBook Pro (El Capitan 10.11.6). Quand j'ouvre rstudio ou j'utiliser la console R Je reçois ce message d'avertissement:Message d'avertissement lors de l'ouverture de RStudio ou de la console R

Warning message: 
In doTryCatch(return(expr), name, parentenv, handler) : 
    unable to load shared object '/Library/Frameworks/R.framework/Resources/modules//R_X11.so': 
    dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so, 6): Symbol not found: _CGBitmapContextCreate 
    Referenced from: /Library/Frameworks/R.framework/Resources/modules//R_X11.so 
    Expected in: flat namespace 
in /Library/Frameworks/R.framework/Resources/modules//R_X11.so 

Connaissez-vous un moyen d'empêcher l'impression du message (ou résoudre le problème)?

Merci!

+1

Cela semble être une excellente question pour le support Microsoft. L'erreur disparaît-elle lorsque vous revenez à CRAN R? – hrbrmstr

+1

J'ai essayé avec la version CRAN R et dans ce cas il n'y a pas d'avertissement. – amarchin

+0

@amarchin, conformément à https://github.com/IRkernel/IRkernel/issues/300, essayez d'installer XQuartz à partir de https://www.xquartz.org/. – jav

Répondre

5

Pour une installation CRAN R, je vois que R_X11.so références les bibliothèques suivantes:

[email protected]:/Library/Frameworks/R.framework/Resources/modules 
$ otool -L R_X11.so 
R_X11.so: 
     R_X11.so (compatibility version 0.0.0, current version 0.0.0) 
     /opt/X11/lib/libSM.6.dylib (compatibility version 7.0.0, current version 7.1.0) 
     /opt/X11/lib/libICE.6.dylib (compatibility version 10.0.0, current version 10.0.0) 
     /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) 
     /opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0) 
     /opt/X11/lib/libXext.6.dylib (compatibility version 11.0.0, current version 11.0.0) 
     /opt/X11/lib/libXrender.1.dylib (compatibility version 5.0.0, current version 5.0.0) 
     /usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.9.0) 
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1) 
     /usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) 
     /opt/X11/lib/libXt.6.dylib (compatibility version 7.0.0, current version 7.0.0) 
     /opt/X11/lib/libXmu.6.dylib (compatibility version 9.0.0, current version 9.0.0) 
     /Library/Frameworks/R.framework/Versions/3.3/Resources/lib/libR.dylib (compatibility version 3.3.0, current version 3.3.1) 
     /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0) 

Cette bibliothèque ne fait pas référence au symbole suggèrent:

[email protected]:/Library/Frameworks/R.framework/Resources/modules 
$ nm R_X11.so | grep CGBitmap 

Cependant, pour une installation MRO, Je vois les bibliothèques suivantes + symboles:

[email protected]:/Volumes/Samsung 850 EVO/Library/Frameworks/R.framework/Resources/modules 
$ otool -L R_X11.so 
R_X11.so: 
     R_X11.so (compatibility version 0.0.0, current version 0.0.0) 
     /opt/X11/lib/libSM.6.dylib (compatibility version 7.0.0, current version 7.1.0) 
     /opt/X11/lib/libICE.6.dylib (compatibility version 10.0.0, current version 10.0.0) 
     /opt/X11/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0) 
     /opt/X11/lib/libXext.6.dylib (compatibility version 11.0.0, current version 11.0.0) 
     /opt/X11/lib/libXrender.1.dylib (compatibility version 5.0.0, current version 5.0.0) 
     /usr/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 7.2.0) 
     /opt/X11/lib/libXt.7.dylib (compatibility version 8.0.0, current version 8.0.0) 
     /opt/X11/lib/libXmu.6.dylib (compatibility version 9.0.0, current version 9.0.0) 
     /Library/Frameworks/R.framework/Versions/3.3.1-MRO/Resources/lib/libR.dylib (compatibility version 3.3.0, current version 3.3.1) 
     /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1255.1.0) 
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1) 

avec ref symboles erenced:

[email protected]:/Volumes/Samsung 850 EVO/Library/Frameworks/R.framework/Resources/modules 
$ nm R_X11.so | grep CGBitmap 
       U _CGBitmapContextCreate 

Ces symboles sont normalement fournis par le CoreGraphics.framework:

[email protected]:/System/Library/Frameworks/CoreGraphics.framework/Versions/A 
$ nm CoreGraphics | grep CGBitmapContext 
0000000000046321 T _CGBitmapContextCreate 
< ... other symbols ... > 

Cependant, le produit MRO-R_X11.so ne lie pas à cela, et ainsi de recherche de ces symboles échoue.

tl; dr: Microsoft vous envoie un logiciel cassé qui ne contient pas de liens vers les bibliothèques fournissant les symboles dont il a besoin. Utilisez le CRAN-provided binaries of R à la place.

0

J'ai eu le problème aussi. Le problème a été résolu après l'installation de XQuartz, puis la reconnexion du système. Remarque: l'utilisation de X11 (y compris tcltk) nécessite l'installation de XQuartz puisqu'il ne fait plus partie d'OS X. Toujours réinstaller XQuartz lors de la mise à niveau de votre OS X vers une nouvelle version majeure.