在安装 R 包时找不到 stdio.h 文件

6

我在安装R时遇到了一些困难。我发现我无法安装软件包,并认为这是由于最近安装的软件包进行了一些调整。由于我是一个新手,我认为重新安装可能会解决问题,因此我通过homebrew卸载了R和Rstudio。

重新安装后,我面临着同样的问题。以下是从控制台输出的部分内容:

install.packages("tidyverse")

/usr/local/opt/llvm/bin/clang -fopenmp -I"/usr/local/Cellar/r/3.5.1/lib/R/include" -DNDEBUG   -I/usr/local/opt/gettext/include -I/usr/local/opt/llvm/include   -fPIC  -g -O3 -Wall -pedantic -std=gnu99 -mtune=native -pipe -c assumptions.c -o assumptions.o
In file included from assumptions.c:21:
/usr/local/Cellar/r/3.5.1/lib/R/include/Rinternals.h:39:11: fatal error: 'stdio.h' file not found
# include <stdio.h>
      ^~~~~~~~~
1 error generated.

搜索本网站和其他网站建议,这与缺少Xcode命令行工具有关。我已经检查过这些工具是否安装。

在终端中搜索stdio.h显示了各种子文件夹中的众多版本(tvos、iOS等)

其他丢失的文件包括:stdlib.h、assert.h和unistd.h

如果需要,我可以提供完整输出。


没有 stdio.h,你甚至无法编译“Hello, World!”。这很糟糕。你在使用安装了吗? - Ralf Stubner
我今天已经重新安装了它 - 但在此之前我一直遇到问题。 - hisspott
所以你在使用Anaconda?如果是这样,我只能添加适当的标签,希望更有经验的人能够注意到你的问题。 - Ralf Stubner
抱歉,我正在使用Rstudio中的R语言。我已经删除了标签。 - hisspott
1个回答

9

进一步搜索发现,在捆绑了macOS Mojave的Xcode 10中,stdio.h和其他实用程序的标准路径位置已经移动。

寻找位于 /usr/include 基本系统下的 macOS 标头文件的“旧版软件”将无法找到所需的文件。

为了解决这个问题,Xcode 包括一个软件包来创建链接,使这些软件能够找到文件。

对于 Xcode 10,该软件包文件位于:

/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

这些信息来源于Apple开发者论坛
安装该程序包并重启计算机后,我已成功安装了tidyverse。
我遇到了另一个问题,我的C编译器无法创建可执行文件,但在此线程中解决了这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接