在 R 和 RStudio 中加载包会出现找不到图像错误

Loading packages in R and RStudio gives image not found error

尝试在 RStudio 或 R 中加载包时,出现“找不到图像”错误,例如:

> install.packages("Rcpp")
Installing package into ‘/Users/blah/Library/R/4.0/library’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.0/Rcpp_1.0.6.tgz'
Content type 'application/x-gzip' length 3203922 bytes (3.1 MB)
==================================================
downloaded 3.1 MB


The downloaded binary packages are in
    /var/folders/q5/9z9mngy52lx6gbjtc_tg5w2wwn7x6k/T//RtmpZwoJ1y/downloaded_packages
> library(Rcpp)
Error: package or namespace load failed for ‘Rcpp’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Users/blah/Library/R/4.0/library/Rcpp/libs/Rcpp.so':
  dlopen(/Users/blah/Library/R/4.0/library/Rcpp/libs/Rcpp.so, 6): Library not loaded: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libR.dylib
  Referenced from: /Users/blah/Library/R/4.0/library/Rcpp/libs/Rcpp.so
  Reason: image not found
> detach("package:Rcpp", unload = TRUE)
Error in detach("package:Rcpp", unload = TRUE) : invalid 'name' argument

用户库中的许多其他包也会发生同样的事情,例如sp、kernlab、gplots、gtools(但不是全部,例如蜡笔加载就可以)。系统库中的包加载正常。

类似的事情发生在 R 中,但不是在同一组包中,例如Rcpp 在这里工作,但 kernlab 仍然没有:

> library(Rcpp)
> detach("package:Rcpp", unload = TRUE)
> library(kernlab)
Error: package or namespace load failed for ‘kernlab’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Users/blah/Library/R/4.0/library/kernlab/libs/kernlab.so':
  dlopen(/Users/blah/Library/R/4.0/library/kernlab/libs/kernlab.so, 6): Library not loaded: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRblas.dylib
  Referenced from: /Users/blah/Library/R/4.0/library/kernlab/libs/kernlab.so
  Reason: image not found
> detach("package:kernlab", unload = TRUE)
Error in detach("package:kernlab", unload = TRUE) :
  invalid 'name' argument

我 运行 在 MacOS 11.2.3 上,最近更新了 XCode (12.4) 和 CommandLineTools - 这似乎破坏了一些东西,所以我怀疑可能存在联系。 R 是 4.0.4 版,RStudio 是 1.4.1106 版。

我该如何解决这个问题?

我通过使用 brew 卸载 R 和 Rstudio 并重新安装来修复此问题 - 但只有当我从木桶中安装 R 时它才有效,尽管 R 和 RStudio 的版本保持不变。

我能看到的主要区别是我的新 Makeconf 文件有一个 -mmacosx-version-min=10.13 标志集,用于 CC、CXX、CXX11 等(编译器是 clang)。