来自 rstudio 的奇怪 ld 警告

Odd ld warning from rstudio

当我尝试在 Rstudio 上安装软件包时,我一直遇到这样的 ld 警告:

ld: warning: text-based stub file /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd and library file /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation are out of sync. Falling back to library file for linking.

有人知道如何解决这个问题吗?

首先,您可以安全地忽略这些消息。这是安装 Mojave (macOS 10.14) 或 macOS 10.13.6+ 更新后的已知情况。

您可以尝试通过让 OS 重新生成兼容性文件来删除它们(Apple 使用不同的库格式进行 macOS 应用程序开发,但是有一个用于 "normal" 开发的兼容层)。为此,请在高速互联网连接上预留大约 8 分钟,打开命令行提示符 (Terminal/iTerm) 并执行:

sudo mv /Library/Developer/CommandLineTools /Library/Developer/CommandLineTools.old

然后做:

xcode-select --install

然后按照说明等待。

重试您的 package/source 编译,如果消息消失,您应该可以安全地执行以下操作:

sudo rm -rf /Library/Developer/CommandLineTools.old

但是将目录树留在那里应该不会造成任何伤害(前提是您有空闲的 space)。

重新安装 CommandLineTools 对我不起作用。

这些警告是由 /System/Library/Frameworks/ 中的框架引起的。

解决方法

将最近的框架从 MacOSX.sdk 链接到 /Library/Frameworks/

sudo ln -s  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework /Library/Frameworks/
sudo ln -s  /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework /Library/Frameworks/