繁体   English   中英

stringi 安装错误:配置:错误:C 编译器无法创建可执行文件

[英]stringi install error: configure: error: C compiler cannot create executables

我正在尝试在最近将 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 

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

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

  • 使用以下命令删除自制软件安装的所有R版本: brew uninstall --force r

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

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

升级你的编译器,这是一个在 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,直接安装你需要的包即可。

快乐编码;)

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

sudo xcodebuild -license

从命令行并同意许可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM