【问题标题】:stringi install error: configure: error: C compiler cannot create executablesstringi 安装错误:配置:错误:C 编译器无法创建可执行文件
【发布时间】:2017-12-28 15:50:57
【问题描述】:

在最近将 R 更新到最新版本后,我正在尝试安装 stringi 包。但是,我遇到了这个错误:

* installing *source* package ‘stringi’ ...
** package ‘stringi’ successfully unpacked and MD5 sums checked
checking for local ICUDT_DIR... icu55/data
checking for R_HOME... /usr/local/Cellar/r/3.4.3/lib/R
checking for R... /usr/local/Cellar/r/3.4.3/lib/R/bin/R
checking for R >= 3.1.0 for C++11 use... yes
checking for R < 3.4.0 for CXX1X flag use... no
checking for cat... /bin/cat
checking for gcc... /usr/local/opt/llvm/bin/clang -fopenmp
checking whether the C compiler works... no
configure: error: in `/private/var/folders/y5/m7pd62wn3939vyqxygrd_ff80000gn/T/RtmpNBCRW2/R.INSTALL8ec750ee123/stringi':
configure: error: C compiler cannot create executables
See `config.log' for more details
ERROR: configuration failed for package ‘stringi’
* removing ‘/usr/local/lib/R/3.4/site-library/stringi’
Warning in install.packages :
  installation of package ‘stringi’ had non-zero exit status

在一些帖子之后,我尝试了:

install.packages('stringi', configure.args='--disable-cxx11')

或:

install.packages('stringi', type='mac.binary')

我怎样才能正确安装stringi,我错过了什么吗?

附加信息:我用 Homebrew 更新了 R。我在尝试安装stringi 之前成功安装了data.table,因此它似乎是由特定于包的问题引起的。

这是我的会话信息:

R version 3.4.3 (2017-11-30)
Platform: x86_64-apple-darwin17.2.0 (64-bit)
Running under: macOS High Sierra 10.13.2

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.4.3 tools_3.4.3 

【问题讨论】:

标签: r stringi


【解决方案1】:

我在更新stringi 包时遇到了同样的问题。正如https://github.com/gagolews/stringi/issues/291 所述,问题不在于 stringi,而在于 ~/.R/Makevars。在命令行中使用rm ~/.R/Makevars 删除此文件后安装成功。

【讨论】:

    【解决方案2】:

    我不知道是什么导致了错误。但最后我能够通过以下步骤安装stringi

    • 删除由 homebrew 安装的 R 的所有版本:brew uninstall --force r

    • 从 CRAN 下载 gfortran(不确定是否有必要,只需按照手册中的安装指南进行操作)和适用于 Mac OS X 的 R 3.4.3(我选择了 .pkg,而 .dmg 文件也可用)和安装它们。

    • 打开studio,运行install.packages('stringi'),好像安装成功了。

    【讨论】:

      【解决方案3】:

      升级你的编译器,这是一个在 openSUSE 上工作的例子:

      安装更新版本的编译器:

      zypper in gcc7 gcc7-c++ gcc7-c++ gcc7-fortran
      

      编辑您的编译器配置文件,打开/usr/lib64/R/etc/Makeconf,并添加以下内容:

      CC = gcc-7
      CXX = g++-7
      CXX98 = g++-7
      CXX11 = g++-7
      CXX14 = g++-7
      CXX17 = g++-7
      FC = gfortran-7
      F77 = gfortran-7
      

      理论上,你不需要重启你的R,直接安装你需要的包即可。

      编码愉快 ;)

      【讨论】:

        【解决方案4】:

        如果您使用的是 MacOS,您的 xcode 许可证可能已过期。尝试运行:

        sudo xcodebuild -license
        

        从命令行并同意许可。

        【讨论】:

          猜你喜欢
          • 2018-06-08
          • 2012-08-24
          • 1970-01-01
          • 2013-09-23
          • 2013-09-24
          • 2012-05-08
          • 1970-01-01
          • 2021-04-23
          • 2019-02-03
          相关资源
          最近更新 更多