安装 Statnet 包时出现 gcc 错误

gcc error when installing Statnet package

使用 R 3 在 mac 10.10.3 上安装 statnet。2.x (RStudio 0.99.441)。

ld: warning: directory not found for option '-L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [latentnet.so] Error 1
ERROR: compilation failed for package ‘latentnet’
* removing ‘/Library/Frameworks/R.framework/Versions/3.2/Resources/library/latentnet’
Warning in install.packages :
installation of package ‘latentnet’ had non-zero exit status
ERROR: dependency ‘latentnet’ is not available for package ‘statnet’
* removing ‘/Library/Frameworks/R.framework/Versions/3.2/Resources/library/statnet’
Warning in install.packages :
installation of package ‘statnet’ had non-zero exit status

我尝试更新 XCode/Command 线条工具。还尝试不安装依赖项。我已经能够安装其他软件包,例如 ergm 和 sna。

看起来安装正在寻找 GCC 文件夹,但没有找到。

whereis gcc

显示我的 gcc 在 /usr/bin/gcc

看起来安装正在 /usr/local/lib/gcc/

中寻找它

有办法解决这个问题吗?

sudo mkdir /usr/bin/lib && sudo ln -s /usr/bin/gcc /usr/bin/lib/gcc

在 /usr/bin 中创建一个名为 `lib' 的新目录,并在该新目录中为 gcc 创建一个符号 link。

如果这不能修复错误,您可以使用以下方法撤消它:

sudo rm -i /usr/bin/lib/gcc && sudo rm -id /usr/bin/lib

这是一个编译错误,只有当您尝试从源代码安装包时,或者当包需要从源代码编译库时才会出现。通常,如果你不使用最新版本的R,你可以从二进制安装statnet,这样R就不必编译源码包了。

您在邮件开头提到的版本 (0.99.441) 是您的 R-Studio 版本,而不是 R。您的 R 版本是 3.2.x(因此它库文件夹中的地址:/Library/Frameworks/R.framework/Versions/3.2/Resources…)。在尝试修复编译错误之前,您可能想尝试将 R 回滚到 3.1.2 或 3.1.3 等版本,您可以在这些版本上下载并安装 statnet 二进制格式。

对于编译器,我的猜测是,即使您使用符号链接修复了 gcc 的地址,您仍然会收到有关 gfortran 或 gcc 版本的错误。一旦我通过 Homebrew 安装 R 和正确版本的 gcc 解决了这个问题,但现在我没有可能尝试解决方案并告诉你具体如何。

我的经验(在Yosemite)是,如果你使用3.1.2或3.1.3,即使需要编译,也不会出现gcc的错误。