stringi install error:configure:error:C编译器无法创建可执行文件

时间:2017-12-28 15:50:58

标签: r stringi

我在最近更新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.我在尝试安装data.table之前成功安装了stringi,因此它似乎是由特定于程序包的问题引起的。

这是我的会话信息:

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 

4 个答案:

答案 0 :(得分:0)

我不知道导致错误的原因。但最后我可以通过以下步骤安装stringi

  • 删除自制程序安装的R的所有版本:brew uninstall --force r

  • 下载gfortran(不确定是否有必要,只需按照手册中的安装指南)和RAN 3.4.3 for Mac OS X来自CRAN(我选择.pkg,而.dmg文件也可用)和安装它们。

  • 打开工作室并运行install.packages('stringi'),这似乎成功安装了二进制包。

答案 1 :(得分:0)

升级你的编译器,这是一个适用于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,只需直接安装所需的软件包即可。

快乐的编码;)

答案 2 :(得分:0)

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

sudo xcodebuild -license

从命令行并同意许可。

答案 3 :(得分:0)

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