[英]Error while installing "RcppArmadillo" package in R
我使用的是 macOS High Sierra 版本 10.13.4。 在安装“RcppArmadillo”包时,我收到以下两条警告消息:
checking whether /usr/local/clang6/bin/clang++ -Wall accepts -g... (cached) yes
checking whether g++ version is sufficient... almost
configure: WARNING: Compiler self-identifies as being compliant with GNUC extensions but is not g++.
checking for macOS... found
checking for macOS Apple compiler... not found
checking for clang compiler... found
checking for OpenMP compatible version of clang... found and suitable
checking LAPACK_LIBS... R-supplied partial LAPACK found
configure: WARNING: Some complex-valued LAPACK functions may not be available
当我在终端上输入“gcc --version”时,我得到
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
我在 R 中的 Makevars 文件看起来像:
FLIBS=-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin16/6.3.0 -L/usr/local/gfortran/lib -lgfortran -lquadmath -lm
F77 = /usr/local/bin/gfortran
FC = $F77
CXX = /usr/local/clang6/bin/clang++ -Wall
LDFLAGS=-L/usr/local/clang6/lib
CC= /usr/local/clang6/bin/clang
SHLIB_CXXLD=ccache /usr/local/clang6/bin/clang++
CXX11 = /usr/local/clang6/bin/clang++
CXX98 = /usr/local/clang6/bin/clang++
CXX14 = /usr/local/clang6/bin/clang++
如何去除这两个警告标志?
简而言之,这些是警告而不是错误。 此外,这些警告并不重要。
让我们来谈谈每个警告的含义......
配置:警告:编译器自我识别为与 GNUC 扩展兼容,但不是 g++。
这说明在Makevars
文件的CXX
变量中定义的编译器识别为gcc
但不是gcc
编译器。 本质上,每个编译器都有自己的预定义头文件,请参阅第 3.7.2 节C 预处理器的通用预定义宏,该检查的重点是验证是否选择了现代gcc
编译器。 但是,如果编译器对它的身份撒谎,则很难检查编译器是否存在。
有关来源的详细信息,请参阅问题在g++version check #183 之后在配置中添加检查消息成功并在 g++ 测试上提交默认消息中的讨论)。
配置:警告:某些复数值 LAPACK 函数可能不可用
在这个警告中,有人抱怨底层的线性代数包与R附带的相同。 不幸的是, R附带的 LAPACK受到严重限制并且有点过时。 因此,此处的检查希望通过 OpenBLAS、Intel MKL 或 ATLAS 存在外部LAPACK。 由于此检查的结构方式,除非您从源代码编译R——即您选择不使用 CRAN 提供的二进制文件——否则无法避免打嗝。
简而言之,CRAN 二进制文件在特定位置查找 LAPACK。 切换到另一个 LAPACK 将需要建立到现有 lRlapack 位置的符号链接,这是检查搜索的内容。 但是,不建议进行这样的符号链接。 (对不起 vecLib 爱好者!)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.